_matrix.ts•2.02 kB
import { defineMatrix } from '../_utils/defineMatrix'
import { Providers } from '../_utils/providers'
export default defineMatrix(() => [
[
{
provider: Providers.SQLITE,
id: 'Int @id @default(autoincrement())',
randomString: 'foo',
},
{
provider: Providers.POSTGRESQL,
id: 'Int @id @default(autoincrement())',
randomString: 'bar',
},
{
provider: Providers.MYSQL,
id: 'Int @id @default(autoincrement())',
randomString: 'baz',
},
{
provider: Providers.SQLSERVER,
id: 'Int @id @default(autoincrement())',
randomString: 'tele',
},
{
provider: Providers.COCKROACHDB,
id: 'BigInt @id @default(autoincrement())',
randomString: 'phone',
},
{
provider: Providers.MONGODB,
id: 'String @id @default(auto()) @map("_id") @db.ObjectId',
randomString: 'book',
},
],
[
{
previewFeatures: '"relationJoins"',
},
{
previewFeatures: '"referentialIntegrity"',
},
],
])
/* Each test suite gets its `TestSuiteConfig` thanks to `getTestSuiteConfigs`.
`getTestSuiteConfigs` gives you `TestSuiteConfig[]`, the matrix cross-product.
`_schema.ts` is then inflated with that cross-product, see example inputs below:
[
{
'provider': 'sqlite',
'id': 'Int @id @default(autoincrement())',
'randomString': 'foo',
'previewFeatures': '"relationJoins"',
},
{
'provider': 'mongodb',
'id': 'String @id @default(auto()) @map("_id") @db.ObjectId',
'randomString': '"book", ',
'previewFeatures': '"relationJoins"',
},
{
'provider': 'sqlite',
'id': 'Int @id @default(autoincrement())',
'randomString': 'foo',
'previewFeatures': '"referentialIntegrity"',
},
{
'provider': 'mongodb',
'id': 'String @id @default(auto()) @map("_id") @db.ObjectId',
'randomString': '"book", ',
'previewFeatures': '"referentialIntegrity"',
},
...
]
*/