diff --git a/packages/client/tests/e2e/ts-version/4.7/README.md b/packages/client/tests/e2e/ts-version/4.7/README.md new file mode 100644 index 000000000000..f1b6d6e0b3fd --- /dev/null +++ b/packages/client/tests/e2e/ts-version/4.7/README.md @@ -0,0 +1,3 @@ +# Readme + +This is testing TypeScript version 4.7.x diff --git a/packages/client/tests/e2e/ts-version/4.7/readme.md b/packages/client/tests/e2e/ts-version/4.7/readme.md deleted file mode 100644 index 0c9c435c3bf5..000000000000 --- a/packages/client/tests/e2e/ts-version/4.7/readme.md +++ /dev/null @@ -1,3 +0,0 @@ -# Readme - -This test tests typescript version 4.7.x diff --git a/packages/client/tests/e2e/ts-version/4.8/README.md b/packages/client/tests/e2e/ts-version/4.8/README.md new file mode 100644 index 000000000000..0dfaf90d44fe --- /dev/null +++ b/packages/client/tests/e2e/ts-version/4.8/README.md @@ -0,0 +1,3 @@ +# Readme + +This is testing TypeScript version 4.8.x diff --git a/packages/client/tests/e2e/ts-version/4.8/readme.md b/packages/client/tests/e2e/ts-version/4.8/readme.md deleted file mode 100644 index 0ae7bc97460c..000000000000 --- a/packages/client/tests/e2e/ts-version/4.8/readme.md +++ /dev/null @@ -1,3 +0,0 @@ -# Readme - -This test tests typescript version 4.8.x diff --git a/packages/client/tests/e2e/ts-version/4.9/README.md b/packages/client/tests/e2e/ts-version/4.9/README.md new file mode 100644 index 000000000000..a1cf76f0349d --- /dev/null +++ b/packages/client/tests/e2e/ts-version/4.9/README.md @@ -0,0 +1,3 @@ +# Readme + +This is testing TypeScript version 4.9.x diff --git a/packages/client/tests/e2e/ts-version/4.9/readme.md b/packages/client/tests/e2e/ts-version/4.9/readme.md deleted file mode 100644 index 753549a0e3dc..000000000000 --- a/packages/client/tests/e2e/ts-version/4.9/readme.md +++ /dev/null @@ -1,3 +0,0 @@ -# Readme - -This test tests typescript version 4.9.x diff --git a/packages/client/tests/e2e/ts-version/5.0/README.md b/packages/client/tests/e2e/ts-version/5.0/README.md new file mode 100644 index 000000000000..70fa27bb1d02 --- /dev/null +++ b/packages/client/tests/e2e/ts-version/5.0/README.md @@ -0,0 +1,3 @@ +# Readme + +This is testing TypeScript version 5.0.x diff --git a/packages/client/tests/e2e/ts-version/5.0/readme.md b/packages/client/tests/e2e/ts-version/5.0/readme.md deleted file mode 100644 index 5519c881aecb..000000000000 --- a/packages/client/tests/e2e/ts-version/5.0/readme.md +++ /dev/null @@ -1,3 +0,0 @@ -# Readme - -This test tests typescript version 5.0.x diff --git a/packages/client/tests/e2e/ts-version/5.1/README.md b/packages/client/tests/e2e/ts-version/5.1/README.md new file mode 100644 index 000000000000..ca9c012686fb --- /dev/null +++ b/packages/client/tests/e2e/ts-version/5.1/README.md @@ -0,0 +1,3 @@ +# Readme + +This is testing TypeScript version 5.1.x diff --git a/packages/client/tests/e2e/ts-version/5.1/readme.md b/packages/client/tests/e2e/ts-version/5.1/readme.md deleted file mode 100644 index a8e6f1da99a2..000000000000 --- a/packages/client/tests/e2e/ts-version/5.1/readme.md +++ /dev/null @@ -1,3 +0,0 @@ -# Readme - -This test tests typescript version 5.1.x diff --git a/packages/client/tests/e2e/ts-version/5.2/README.md b/packages/client/tests/e2e/ts-version/5.2/README.md new file mode 100644 index 000000000000..3f3d1c0719dc --- /dev/null +++ b/packages/client/tests/e2e/ts-version/5.2/README.md @@ -0,0 +1,3 @@ +# Readme + +This is testing TypeScript version 5.2.x diff --git a/packages/client/tests/e2e/ts-version/5.2/_steps.ts b/packages/client/tests/e2e/ts-version/5.2/_steps.ts new file mode 100644 index 000000000000..088d8ef55ad9 --- /dev/null +++ b/packages/client/tests/e2e/ts-version/5.2/_steps.ts @@ -0,0 +1,17 @@ +import { $ } from 'zx' + +import { executeSteps } from '../../_utils/executeSteps' + +void executeSteps({ + setup: async () => { + await $`pnpm install` + await $`pnpm exec prisma generate` + }, + test: async () => { + await $`pnpm exec tsc --noEmit` + }, + finish: async () => { + await $`echo "done"` + }, + // keep: true, // keep docker open to debug it +}) diff --git a/packages/client/tests/e2e/ts-version/5.2/package.json b/packages/client/tests/e2e/ts-version/5.2/package.json new file mode 100644 index 000000000000..5b45b895c7ea --- /dev/null +++ b/packages/client/tests/e2e/ts-version/5.2/package.json @@ -0,0 +1,15 @@ +{ + "private": true, + "version": "0.0.0", + "main": "index.js", + "scripts": {}, + "dependencies": { + "@prisma/client": "/tmp/prisma-client-0.0.0.tgz" + }, + "devDependencies": { + "@types/jest": "29.5.1", + "@types/node": "16.18.11", + "prisma": "/tmp/prisma-0.0.0.tgz", + "typescript": "~5.2.2" + } +} diff --git a/packages/client/tests/e2e/ts-version/5.2/prisma/schema.prisma b/packages/client/tests/e2e/ts-version/5.2/prisma/schema.prisma new file mode 100644 index 000000000000..33ab340c83c6 --- /dev/null +++ b/packages/client/tests/e2e/ts-version/5.2/prisma/schema.prisma @@ -0,0 +1,35 @@ +// This is your Prisma schema file, +// learn more about it in the docs: https://pris.ly/d/prisma-schema + +generator client { + provider = "prisma-client-js" +} + +datasource db { + provider = "sqlite" + url = "file:./db" +} + +model User { + id Int @id @default(autoincrement()) + email String @unique + name String? + posts Post[] + profile Profile? +} + +model Post { + id Int @id @default(autoincrement()) + title String + content String? + published Boolean @default(false) + author User @relation(fields: [authorId], references: [id]) + authorId Int +} + +model Profile { + id Int @id @default(autoincrement()) + bio String? + user User @relation(fields: [userId], references: [id]) + userId Int @unique +} diff --git a/packages/client/tests/e2e/ts-version/5.2/src/index.ts b/packages/client/tests/e2e/ts-version/5.2/src/index.ts new file mode 100644 index 000000000000..687542514f0d --- /dev/null +++ b/packages/client/tests/e2e/ts-version/5.2/src/index.ts @@ -0,0 +1 @@ +import '@prisma/client' diff --git a/packages/client/tests/e2e/ts-version/5.2/tsconfig.json b/packages/client/tests/e2e/ts-version/5.2/tsconfig.json new file mode 100644 index 000000000000..e3a952c20df1 --- /dev/null +++ b/packages/client/tests/e2e/ts-version/5.2/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "../../tsconfig.base.json", + "exclude": ["_steps.ts"] +} diff --git a/packages/client/tests/e2e/ts-version/README.md b/packages/client/tests/e2e/ts-version/README.md new file mode 100644 index 000000000000..19dee3ac6347 --- /dev/null +++ b/packages/client/tests/e2e/ts-version/README.md @@ -0,0 +1,5 @@ +# TypeScript versions + +See https://www.prisma.io/docs/reference/system-requirements for which TS version is the minimum supported by Prisma. + +See the https://www.npmjs.com/package/typescript package for available versions. diff --git a/packages/client/tests/e2e/ts-version/beta/README.md b/packages/client/tests/e2e/ts-version/beta/README.md new file mode 100644 index 000000000000..1947dce288a2 --- /dev/null +++ b/packages/client/tests/e2e/ts-version/beta/README.md @@ -0,0 +1,3 @@ +# Readme + +This is testing the beta build of TypeScript diff --git a/packages/client/tests/e2e/ts-version/beta/_steps.ts b/packages/client/tests/e2e/ts-version/beta/_steps.ts new file mode 100644 index 000000000000..4bf4ec3d0b55 --- /dev/null +++ b/packages/client/tests/e2e/ts-version/beta/_steps.ts @@ -0,0 +1,17 @@ +import { $ } from 'zx' + +import { executeSteps } from '../../_utils/executeSteps' + +void executeSteps({ + setup: async () => { + await $`pnpm install` + await $`pnpm prisma generate` + }, + test: async () => { + await $`pnpm tsc --noEmit` + }, + finish: async () => { + await $`echo "done"` + }, + // keep: true, // keep docker open to debug it +}) diff --git a/packages/client/tests/e2e/ts-version/beta/package.json b/packages/client/tests/e2e/ts-version/beta/package.json new file mode 100644 index 000000000000..7b47c1ae4f16 --- /dev/null +++ b/packages/client/tests/e2e/ts-version/beta/package.json @@ -0,0 +1,15 @@ +{ + "private": true, + "version": "0.0.0", + "main": "index.js", + "scripts": {}, + "dependencies": { + "@prisma/client": "/tmp/prisma-client-0.0.0.tgz" + }, + "devDependencies": { + "@types/jest": "29.5.1", + "@types/node": "16.18.11", + "prisma": "/tmp/prisma-0.0.0.tgz", + "typescript": "beta" + } +} diff --git a/packages/client/tests/e2e/ts-version/beta/prisma/schema.prisma b/packages/client/tests/e2e/ts-version/beta/prisma/schema.prisma new file mode 100644 index 000000000000..33ab340c83c6 --- /dev/null +++ b/packages/client/tests/e2e/ts-version/beta/prisma/schema.prisma @@ -0,0 +1,35 @@ +// This is your Prisma schema file, +// learn more about it in the docs: https://pris.ly/d/prisma-schema + +generator client { + provider = "prisma-client-js" +} + +datasource db { + provider = "sqlite" + url = "file:./db" +} + +model User { + id Int @id @default(autoincrement()) + email String @unique + name String? + posts Post[] + profile Profile? +} + +model Post { + id Int @id @default(autoincrement()) + title String + content String? + published Boolean @default(false) + author User @relation(fields: [authorId], references: [id]) + authorId Int +} + +model Profile { + id Int @id @default(autoincrement()) + bio String? + user User @relation(fields: [userId], references: [id]) + userId Int @unique +} diff --git a/packages/client/tests/e2e/ts-version/beta/src/index.ts b/packages/client/tests/e2e/ts-version/beta/src/index.ts new file mode 100644 index 000000000000..687542514f0d --- /dev/null +++ b/packages/client/tests/e2e/ts-version/beta/src/index.ts @@ -0,0 +1 @@ +import '@prisma/client' diff --git a/packages/client/tests/e2e/ts-version/beta/tsconfig.json b/packages/client/tests/e2e/ts-version/beta/tsconfig.json new file mode 100644 index 000000000000..e3a952c20df1 --- /dev/null +++ b/packages/client/tests/e2e/ts-version/beta/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "../../tsconfig.base.json", + "exclude": ["_steps.ts"] +} diff --git a/packages/client/tests/e2e/ts-version/latest/README.md b/packages/client/tests/e2e/ts-version/latest/README.md new file mode 100644 index 000000000000..90642792dd60 --- /dev/null +++ b/packages/client/tests/e2e/ts-version/latest/README.md @@ -0,0 +1,3 @@ +# Readme + +This is testing the latest version of TypeScript diff --git a/packages/client/tests/e2e/ts-version/latest/_steps.ts b/packages/client/tests/e2e/ts-version/latest/_steps.ts new file mode 100644 index 000000000000..4bf4ec3d0b55 --- /dev/null +++ b/packages/client/tests/e2e/ts-version/latest/_steps.ts @@ -0,0 +1,17 @@ +import { $ } from 'zx' + +import { executeSteps } from '../../_utils/executeSteps' + +void executeSteps({ + setup: async () => { + await $`pnpm install` + await $`pnpm prisma generate` + }, + test: async () => { + await $`pnpm tsc --noEmit` + }, + finish: async () => { + await $`echo "done"` + }, + // keep: true, // keep docker open to debug it +}) diff --git a/packages/client/tests/e2e/ts-version/latest/package.json b/packages/client/tests/e2e/ts-version/latest/package.json new file mode 100644 index 000000000000..e4074248870f --- /dev/null +++ b/packages/client/tests/e2e/ts-version/latest/package.json @@ -0,0 +1,15 @@ +{ + "private": true, + "version": "0.0.0", + "main": "index.js", + "scripts": {}, + "dependencies": { + "@prisma/client": "/tmp/prisma-client-0.0.0.tgz" + }, + "devDependencies": { + "@types/jest": "29.5.1", + "@types/node": "16.18.11", + "prisma": "/tmp/prisma-0.0.0.tgz", + "typescript": "latest" + } +} diff --git a/packages/client/tests/e2e/ts-version/latest/prisma/schema.prisma b/packages/client/tests/e2e/ts-version/latest/prisma/schema.prisma new file mode 100644 index 000000000000..33ab340c83c6 --- /dev/null +++ b/packages/client/tests/e2e/ts-version/latest/prisma/schema.prisma @@ -0,0 +1,35 @@ +// This is your Prisma schema file, +// learn more about it in the docs: https://pris.ly/d/prisma-schema + +generator client { + provider = "prisma-client-js" +} + +datasource db { + provider = "sqlite" + url = "file:./db" +} + +model User { + id Int @id @default(autoincrement()) + email String @unique + name String? + posts Post[] + profile Profile? +} + +model Post { + id Int @id @default(autoincrement()) + title String + content String? + published Boolean @default(false) + author User @relation(fields: [authorId], references: [id]) + authorId Int +} + +model Profile { + id Int @id @default(autoincrement()) + bio String? + user User @relation(fields: [userId], references: [id]) + userId Int @unique +} diff --git a/packages/client/tests/e2e/ts-version/latest/src/index.ts b/packages/client/tests/e2e/ts-version/latest/src/index.ts new file mode 100644 index 000000000000..687542514f0d --- /dev/null +++ b/packages/client/tests/e2e/ts-version/latest/src/index.ts @@ -0,0 +1 @@ +import '@prisma/client' diff --git a/packages/client/tests/e2e/ts-version/latest/tsconfig.json b/packages/client/tests/e2e/ts-version/latest/tsconfig.json new file mode 100644 index 000000000000..e3a952c20df1 --- /dev/null +++ b/packages/client/tests/e2e/ts-version/latest/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "../../tsconfig.base.json", + "exclude": ["_steps.ts"] +} diff --git a/packages/client/tests/e2e/ts-version/next/readme.md b/packages/client/tests/e2e/ts-version/next/readme.md index 3cd2a7d1f218..d69352f53662 100644 --- a/packages/client/tests/e2e/ts-version/next/readme.md +++ b/packages/client/tests/e2e/ts-version/next/readme.md @@ -1,3 +1,3 @@ # Readme -This test tests next typescript nightly build +This is testing the nightly build of TypeScript