Merge pull request #172563 from pimeys/prisma-tests

authored by Sandro and committed by GitHub da209882 3ab458c3

+62
+6
pkgs/development/node-packages/default.nix
··· 339 339 --set PRISMA_INTROSPECTION_ENGINE_BINARY ${prisma-engines}/bin/introspection-engine \ 340 340 --set PRISMA_FMT_BINARY ${prisma-engines}/bin/prisma-fmt 341 341 ''; 342 + 343 + passthru.tests = { 344 + simple-execution = pkgs.callPackage ./package-tests/prisma.nix { 345 + inherit (self) prisma; 346 + }; 347 + }; 342 348 }; 343 349 344 350 pulp = super.pulp.override {
+56
pkgs/development/node-packages/package-tests/prisma.nix
··· 1 + { lib, pkgs, runCommand, prisma }: 2 + 3 + let 4 + inherit (prisma) packageName; 5 + prismaMajorVersion = lib.versions.majorMinor prisma.version; 6 + enginesMajorVersion = lib.versions.majorMinor pkgs.prisma-engines.version; 7 + in 8 + 9 + runCommand "${packageName}-tests" { 10 + nativeBuildInputs = with pkgs; [ prisma sqlite-interactive ]; 11 + meta.timeout = 60; 12 + } 13 + '' 14 + mkdir $out 15 + cd $out 16 + 17 + if [ "${prismaMajorVersion}" != "${enginesMajorVersion}" ]; then 18 + echo "nodePackages.prisma in version ${prismaMajorVersion} and prisma-engines in ${enginesMajorVersion}. Major versions must match." 19 + exit 1 20 + fi 21 + 22 + # Ensure CLI runs 23 + prisma --help > /dev/null 24 + 25 + # Init a new project 26 + prisma init > /dev/null 27 + 28 + # Create a simple data model 29 + cat << EOF > prisma/schema.prisma 30 + datasource db { 31 + provider = "sqlite" 32 + url = "file:test.db" 33 + } 34 + 35 + generator js { 36 + provider = "prisma-client-js" 37 + } 38 + 39 + model A { 40 + id Int @id @default(autoincrement()) 41 + b String @default("foo") 42 + } 43 + EOF 44 + 45 + # Format 46 + prisma format > /dev/null 47 + 48 + # Create the database 49 + prisma db push --skip-generate > /dev/null 50 + 51 + # The database file should exist and be a SQLite database 52 + sqlite3 prisma/test.db "SELECT id, b FROM A" > /dev/null 53 + 54 + # Introspect the database 55 + prisma db pull > /dev/null 56 + ''