-
Notifications
You must be signed in to change notification settings - Fork 1k
/
Copy pathprisma.test.js
71 lines (63 loc) · 1.46 KB
/
prisma.test.js
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
vi.mock('@redwoodjs/project-config', async (importOriginal) => {
const originalProjectConfig = await importOriginal()
return {
...originalProjectConfig,
getPaths: () => {
return {
api: {
dbSchema:
'/Users/bazinga/My Projects/rwprj/rwprj/api/db/schema.prisma',
},
base: '/Users/bazinga/My Projects/rwprj/rwprj',
}
},
}
})
vi.mock('execa', () => ({
default: {
sync: vi.fn((cmd, params, options) => {
return {
cmd,
params,
options,
}
}),
},
}))
vi.mock('fs-extra', async (importOriginal) => {
const originalFsExtra = await importOriginal()
return {
default: {
...originalFsExtra,
existsSync: () => true,
},
}
})
import execa from 'execa'
import { vi, beforeEach, afterEach, test, expect } from 'vitest'
import { handler } from '../prisma.js'
beforeEach(() => {
vi.spyOn(console, 'info').mockImplementation(() => {})
vi.spyOn(console, 'log').mockImplementation(() => {})
})
afterEach(() => {
console.info.mockRestore()
console.log.mockRestore()
})
test('the prisma command handles spaces', async () => {
await handler({
_: ['prisma'],
$0: 'rw',
commands: ['migrate', 'dev'],
// options
n: 'add bazingas',
})
expect(execa.sync.mock.calls[0][1]).toEqual([
'migrate',
'dev',
'-n',
'"add bazingas"',
'--schema',
'"/Users/bazinga/My Projects/rwprj/rwprj/api/db/schema.prisma"',
])
})