parent
c5dbc6d161
commit
03651228c4
@ -0,0 +1,56 @@ |
||||
{ lib, pkgs, runCommand, prisma }: |
||||
|
||||
let |
||||
inherit (prisma) packageName; |
||||
prismaMajorVersion = lib.versions.majorMinor prisma.version; |
||||
enginesMajorVersion = lib.versions.majorMinor pkgs.prisma-engines.version; |
||||
in |
||||
|
||||
runCommand "${packageName}-tests" { |
||||
nativeBuildInputs = with pkgs; [ prisma sqlite-interactive ]; |
||||
meta.timeout = 60; |
||||
} |
||||
'' |
||||
mkdir $out |
||||
cd $out |
||||
|
||||
if [ "${prismaMajorVersion}" != "${enginesMajorVersion}" ]; then |
||||
echo "nodePackages.prisma in version ${prismaMajorVersion} and prisma-engines in ${enginesMajorVersion}. Major versions must match." |
||||
exit 1 |
||||
fi |
||||
|
||||
# Ensure CLI runs |
||||
prisma --help > /dev/null |
||||
|
||||
# Init a new project |
||||
prisma init > /dev/null |
||||
|
||||
# Create a simple data model |
||||
cat << EOF > prisma/schema.prisma |
||||
datasource db { |
||||
provider = "sqlite" |
||||
url = "file:test.db" |
||||
} |
||||
|
||||
generator js { |
||||
provider = "prisma-client-js" |
||||
} |
||||
|
||||
model A { |
||||
id Int @id @default(autoincrement()) |
||||
b String @default("foo") |
||||
} |
||||
EOF |
||||
|
||||
# Format |
||||
prisma format > /dev/null |
||||
|
||||
# Create the database |
||||
prisma db push --skip-generate > /dev/null |
||||
|
||||
# The database file should exist and be a SQLite database |
||||
sqlite3 prisma/test.db "SELECT id, b FROM A" > /dev/null |
||||
|
||||
# Introspect the database |
||||
prisma db pull > /dev/null |
||||
'' |
Loading…
Reference in new issue