Skip to content

Commit

Permalink
fix(sdk): getGenerators (#7792)
Browse files Browse the repository at this point in the history
  • Loading branch information
williamluke4 committed Jun 21, 2021
1 parent e5fc569 commit 808707b
Show file tree
Hide file tree
Showing 2 changed files with 141 additions and 156 deletions.
264 changes: 124 additions & 140 deletions src/packages/sdk/src/__tests__/getGenerators/getGenerators.test.ts
Expand Up @@ -101,28 +101,23 @@ describe('getGenerators', () => {
generators.forEach((g) => g.stop())
})

/* eslint-disable jest/no-standalone-expect */
const it = (condition: boolean) => (condition ? test : test.skip)

it(process.env.PRISMA_FORCE_NAPI !== 'true')(
'basic - binaryTargets - native string',
async () => {
const aliases = {
'predefined-generator': {
generatorPath: path.join(__dirname, 'generator'),
outputPath: __dirname,
},
}
it('basic - binaryTargets - native string', async () => {
const aliases = {
'predefined-generator': {
generatorPath: path.join(__dirname, 'generator'),
outputPath: __dirname,
},
}

const generators = await getGenerators({
schemaPath: path.join(
__dirname,
'valid-minimal-schema-binaryTargets.prisma',
),
providerAliases: aliases,
})
const generators = await getGenerators({
schemaPath: path.join(
__dirname,
'valid-minimal-schema-binaryTargets.prisma',
),
providerAliases: aliases,
})

expect(generators.map((g) => g.manifest)).toMatchInlineSnapshot(`
expect(generators.map((g) => g.manifest)).toMatchInlineSnapshot(`
Array [
Object {
"defaultOutput": "default-output",
Expand All @@ -138,13 +133,13 @@ describe('getGenerators', () => {
]
`)

expect(
pick(generators[0].options!, [
'datamodel',
'datasources',
'otherGenerators',
]),
).toMatchInlineSnapshot(`
expect(
pick(generators[0].options!, [
'datamodel',
'datasources',
'otherGenerators',
]),
).toMatchInlineSnapshot(`
Object {
"datamodel": "datasource db {
provider = \\"sqlite\\"
Expand Down Expand Up @@ -178,14 +173,14 @@ describe('getGenerators', () => {
}
`)

const generator = omit(generators[0].options!.generator, ['output'])
const platform = await getPlatform()
const generator = omit(generators[0].options!.generator, ['output'])
const platform = await getPlatform()

expect(generator.binaryTargets).toHaveLength(1)
expect(generator.binaryTargets[0].value).toEqual(platform)
expect(generator.binaryTargets[0].fromEnvVar).toEqual(null)
expect(generator.binaryTargets).toHaveLength(1)
expect(generator.binaryTargets[0].value).toEqual(platform)
expect(generator.binaryTargets[0].fromEnvVar).toEqual(null)

expect(omit(generator, ['binaryTargets'])).toMatchInlineSnapshot(`
expect(omit(generator, ['binaryTargets'])).toMatchInlineSnapshot(`
Object {
"config": Object {},
"name": "gen_env",
Expand All @@ -197,31 +192,28 @@ describe('getGenerators', () => {
}
`)

generators.forEach((g) => g.stop())
},
)
generators.forEach((g) => g.stop())
})

it(process.env.PRISMA_FORCE_NAPI !== 'true')(
'basic - binaryTargets as env var - native string',
async () => {
process.env.BINARY_TARGETS_ENV_VAR_TEST = '"native"'
it('basic - binaryTargets as env var - native string', async () => {
process.env.BINARY_TARGETS_ENV_VAR_TEST = '"native"'

const aliases = {
'predefined-generator': {
generatorPath: path.join(__dirname, 'generator'),
outputPath: __dirname,
},
}
const aliases = {
'predefined-generator': {
generatorPath: path.join(__dirname, 'generator'),
outputPath: __dirname,
},
}

const generators = await getGenerators({
schemaPath: path.join(
__dirname,
'valid-minimal-schema-binaryTargets-env-var.prisma',
),
providerAliases: aliases,
})
const generators = await getGenerators({
schemaPath: path.join(
__dirname,
'valid-minimal-schema-binaryTargets-env-var.prisma',
),
providerAliases: aliases,
})

expect(generators.map((g) => g.manifest)).toMatchInlineSnapshot(`
expect(generators.map((g) => g.manifest)).toMatchInlineSnapshot(`
Array [
Object {
"defaultOutput": "default-output",
Expand All @@ -237,13 +229,13 @@ describe('getGenerators', () => {
]
`)

expect(
pick(generators[0].options!, [
'datamodel',
'datasources',
'otherGenerators',
]),
).toMatchInlineSnapshot(`
expect(
pick(generators[0].options!, [
'datamodel',
'datasources',
'otherGenerators',
]),
).toMatchInlineSnapshot(`
Object {
"datamodel": "datasource db {
provider = \\"sqlite\\"
Expand Down Expand Up @@ -277,16 +269,16 @@ describe('getGenerators', () => {
}
`)

const generator = omit(generators[0].options!.generator, ['output'])
const platform = await getPlatform()
const generator = omit(generators[0].options!.generator, ['output'])
const platform = await getPlatform()

expect(generator.binaryTargets).toHaveLength(1)
expect(generator.binaryTargets[0].value).toEqual(platform)
expect(generator.binaryTargets[0].fromEnvVar).toEqual(
'BINARY_TARGETS_ENV_VAR_TEST',
)
expect(generator.binaryTargets).toHaveLength(1)
expect(generator.binaryTargets[0].value).toEqual(platform)
expect(generator.binaryTargets[0].fromEnvVar).toEqual(
'BINARY_TARGETS_ENV_VAR_TEST',
)

expect(omit(generator, ['binaryTargets'])).toMatchInlineSnapshot(`
expect(omit(generator, ['binaryTargets'])).toMatchInlineSnapshot(`
Object {
"config": Object {},
"name": "gen_env",
Expand All @@ -298,31 +290,28 @@ describe('getGenerators', () => {
}
`)

generators.forEach((g) => g.stop())
},
)
generators.forEach((g) => g.stop())
})

it(process.env.PRISMA_FORCE_NAPI !== 'true')(
'basic - binaryTargets as env var - native (in array)',
async () => {
process.env.BINARY_TARGETS_ENV_VAR_TEST = '["native"]'
it('basic - binaryTargets as env var - native (in array)', async () => {
process.env.BINARY_TARGETS_ENV_VAR_TEST = '["native"]'

const aliases = {
'predefined-generator': {
generatorPath: path.join(__dirname, 'generator'),
outputPath: __dirname,
},
}
const aliases = {
'predefined-generator': {
generatorPath: path.join(__dirname, 'generator'),
outputPath: __dirname,
},
}

const generators = await getGenerators({
schemaPath: path.join(
__dirname,
'valid-minimal-schema-binaryTargets-env-var.prisma',
),
providerAliases: aliases,
})
const generators = await getGenerators({
schemaPath: path.join(
__dirname,
'valid-minimal-schema-binaryTargets-env-var.prisma',
),
providerAliases: aliases,
})

expect(generators.map((g) => g.manifest)).toMatchInlineSnapshot(`
expect(generators.map((g) => g.manifest)).toMatchInlineSnapshot(`
Array [
Object {
"defaultOutput": "default-output",
Expand All @@ -338,13 +327,13 @@ describe('getGenerators', () => {
]
`)

expect(
pick(generators[0].options!, [
'datamodel',
'datasources',
'otherGenerators',
]),
).toMatchInlineSnapshot(`
expect(
pick(generators[0].options!, [
'datamodel',
'datasources',
'otherGenerators',
]),
).toMatchInlineSnapshot(`
Object {
"datamodel": "datasource db {
provider = \\"sqlite\\"
Expand Down Expand Up @@ -378,16 +367,16 @@ describe('getGenerators', () => {
}
`)

const generator = omit(generators[0].options!.generator, ['output'])
const platform = await getPlatform()
const generator = omit(generators[0].options!.generator, ['output'])
const platform = await getPlatform()

expect(generator.binaryTargets).toHaveLength(1)
expect(generator.binaryTargets[0].value).toEqual(platform)
expect(generator.binaryTargets[0].fromEnvVar).toEqual(
'BINARY_TARGETS_ENV_VAR_TEST',
)
expect(generator.binaryTargets).toHaveLength(1)
expect(generator.binaryTargets[0].value).toEqual(platform)
expect(generator.binaryTargets[0].fromEnvVar).toEqual(
'BINARY_TARGETS_ENV_VAR_TEST',
)

expect(omit(generator, ['binaryTargets'])).toMatchInlineSnapshot(`
expect(omit(generator, ['binaryTargets'])).toMatchInlineSnapshot(`
Object {
"config": Object {},
"name": "gen_env",
Expand All @@ -399,32 +388,29 @@ describe('getGenerators', () => {
}
`)

generators.forEach((g) => g.stop())
},
)
generators.forEach((g) => g.stop())
})

it(process.env.PRISMA_FORCE_NAPI !== 'true')(
'basic - binaryTargets as env var - darwin, windows, debian',
async () => {
process.env.BINARY_TARGETS_ENV_VAR_TEST =
'["darwin", "windows", "debian-openssl-1.1.x"]'
it('basic - binaryTargets as env var - darwin, windows, debian', async () => {
process.env.BINARY_TARGETS_ENV_VAR_TEST =
'["darwin", "windows", "debian-openssl-1.1.x"]'

const aliases = {
'predefined-generator': {
generatorPath: path.join(__dirname, 'generator'),
outputPath: __dirname,
},
}
const aliases = {
'predefined-generator': {
generatorPath: path.join(__dirname, 'generator'),
outputPath: __dirname,
},
}

const generators = await getGenerators({
schemaPath: path.join(
__dirname,
'valid-minimal-schema-binaryTargets-env-var.prisma',
),
providerAliases: aliases,
})
const generators = await getGenerators({
schemaPath: path.join(
__dirname,
'valid-minimal-schema-binaryTargets-env-var.prisma',
),
providerAliases: aliases,
})

expect(generators.map((g) => g.manifest)).toMatchInlineSnapshot(`
expect(generators.map((g) => g.manifest)).toMatchInlineSnapshot(`
Array [
Object {
"defaultOutput": "default-output",
Expand All @@ -440,13 +426,13 @@ describe('getGenerators', () => {
]
`)

expect(
pick(generators[0].options!, [
'datamodel',
'datasources',
'otherGenerators',
]),
).toMatchInlineSnapshot(`
expect(
pick(generators[0].options!, [
'datamodel',
'datasources',
'otherGenerators',
]),
).toMatchInlineSnapshot(`
Object {
"datamodel": "datasource db {
provider = \\"sqlite\\"
Expand Down Expand Up @@ -480,8 +466,8 @@ describe('getGenerators', () => {
}
`)

expect(omit(generators[0].options!.generator, ['output']))
.toMatchInlineSnapshot(`
expect(omit(generators[0].options!.generator, ['output']))
.toMatchInlineSnapshot(`
Object {
"binaryTargets": Array [
Object {
Expand All @@ -507,10 +493,8 @@ describe('getGenerators', () => {
}
`)

generators.forEach((g) => g.stop())
},
)
/* eslint-enable jest/no-standalone-expect */
generators.forEach((g) => g.stop())
})

test('inject engines', async () => {
const aliases = {
Expand Down

0 comments on commit 808707b

Please sign in to comment.