nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 runCommand,
4 prisma_6,
5 prisma-engines_6,
6 sqlite-interactive,
7 openssl,
8}:
9
10let
11 prismaMajorVersion = lib.versions.majorMinor prisma_6.version;
12 enginesMajorVersion = lib.versions.majorMinor prisma-engines_6.version;
13in
14runCommand "prisma-cli-tests"
15 {
16 nativeBuildInputs = [
17 prisma_6
18 sqlite-interactive
19 openssl
20 ];
21 meta.timeout = 60;
22 }
23 ''
24 mkdir $out
25 cd $out
26
27 if [ "${prismaMajorVersion}" != "${enginesMajorVersion}" ]; then
28 echo "prisma in version ${prismaMajorVersion} and prisma-engines in ${enginesMajorVersion}. Major versions must match."
29 exit 1
30 fi
31
32 # Ensure CLI runs
33 prisma --help > /dev/null
34
35 # Init a new project without prisma init, which needs
36 # network access
37 mkdir prisma
38
39 # Create a simple data model
40 cat << EOF > prisma/schema.prisma
41 datasource db {
42 provider = "sqlite"
43 url = "file:test.db"
44 }
45
46 generator js {
47 provider = "prisma-client-js"
48 }
49
50 model A {
51 id Int @id @default(autoincrement())
52 b String @default("foo")
53 }
54 EOF
55
56 # Format
57 prisma format > /dev/null
58
59 # Create the database
60 prisma db push --skip-generate > /dev/null
61
62 # The database file should exist and be a SQLite database
63 sqlite3 prisma/test.db "SELECT id, b FROM A" > /dev/null
64
65 # Introspect the database
66 prisma db pull > /dev/null
67 ''