forked from prisma/prisma
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathresolveDatasources.test.ts
96 lines (90 loc) · 2.72 KB
/
resolveDatasources.test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
import type { DataSource } from '@prisma/generator-helper'
import { datasourceToDatasourceOverwrite, serializeDatasources } from '../generation/serializeDatasources'
import { absolutizeRelativePath } from '../utils/resolveDatasources'
const cwd = '/Users/tim/project/prisma'
const outputDir = '/Users/tim/project/node_modules/@prisma/client/runtime'
test('absolutizeRelativePath', () => {
expect(absolutizeRelativePath('file:db.db', cwd, outputDir)).toMatchInlineSnapshot(`"../../../../prisma/db.db"`)
expect(absolutizeRelativePath('file:/db.db', cwd, outputDir)).toMatchInlineSnapshot(`"../../../../../../../db.db"`)
expect(absolutizeRelativePath('file:../db.db', cwd, outputDir)).toMatchInlineSnapshot(`"../../../../db.db"`)
expect(absolutizeRelativePath('file:./db.db', cwd, outputDir)).toMatchInlineSnapshot(`"../../../../prisma/db.db"`)
expect(absolutizeRelativePath('file:asd/another/dir/db.db', cwd, outputDir)).toMatchInlineSnapshot(
`"../../../../prisma/asd/another/dir/db.db"`,
)
expect(absolutizeRelativePath('file:/some/random/dir/db.db', cwd, outputDir)).toMatchInlineSnapshot(
`"../../../../../../../some/random/dir/db.db"`,
)
expect(
absolutizeRelativePath('file:/Users/tim/project/node_modules/@prisma/client/runtime', cwd, outputDir),
).toMatchInlineSnapshot(`""`)
expect(absolutizeRelativePath('file:../another-dir/db.db', cwd, outputDir)).toMatchInlineSnapshot(
`"../../../../another-dir/db.db"`,
)
expect(absolutizeRelativePath('file:./some/dir/db.db', cwd, outputDir)).toMatchInlineSnapshot(
`"../../../../prisma/some/dir/db.db"`,
)
})
const datasources: DataSource[] = [
{
name: 'db',
url: {
value: 'file:db.db',
fromEnvVar: null,
},
activeProvider: 'sqlite',
provider: 'sqlite',
schemas: [],
},
{
name: 'db2',
url: {
value: 'file:./some-dir/db.db',
fromEnvVar: null,
},
activeProvider: 'sqlite',
provider: 'sqlite',
schemas: [],
},
{
name: 'db3',
url: {
value: 'mysql:localhost',
fromEnvVar: null,
},
activeProvider: 'mysql',
provider: 'mysql',
schemas: [],
},
{
name: 'db4',
url: {
value: 'postgresql://',
fromEnvVar: null,
},
activeProvider: 'postgresql',
provider: 'postgresql',
schemas: [],
},
]
test('serializeDatasources', () => {
expect(serializeDatasources(datasources.map(datasourceToDatasourceOverwrite))).toMatchInlineSnapshot(`
"[
{
"name": "db",
"url": "file:db.db"
},
{
"name": "db2",
"url": "file:./some-dir/db.db"
},
{
"name": "db3",
"url": "mysql:localhost"
},
{
"name": "db4",
"url": "postgresql://"
}
]"
`)
})