|
1 | 1 | import { beforeEach, describe, expect, it, vi } from 'vitest' |
2 | 2 |
|
3 | | -vi.mock('../../operations/exec.js', () => ({ |
4 | | - exec: vi.fn().mockResolvedValue(''), |
5 | | - execFile: vi.fn().mockResolvedValue(''), |
| 3 | +vi.mock('node:fs/promises', () => ({ |
| 4 | + copyFile: vi.fn().mockResolvedValue(undefined), |
6 | 5 | })) |
7 | 6 |
|
8 | | -const { exec } = await import('../../operations/exec.js') |
| 7 | +const { copyFile } = await import('node:fs/promises') |
9 | 8 | const { createEnvFile } = await import('../../operations/createEnvFile.js') |
10 | 9 |
|
11 | 10 | describe('createEnvFile', () => { |
12 | 11 | beforeEach(() => { |
13 | 12 | vi.clearAllMocks() |
14 | 13 | }) |
15 | 14 |
|
16 | | - it('copies .env.example to .env.local', async () => { |
| 15 | + it('copies .env.example to .env.local in the project folder', async () => { |
17 | 16 | await createEnvFile('/project/my_app') |
18 | 17 |
|
19 | | - expect(exec).toHaveBeenCalledWith('cp .env.example .env.local', { cwd: '/project/my_app' }) |
| 18 | + expect(copyFile).toHaveBeenCalledWith( |
| 19 | + '/project/my_app/.env.example', |
| 20 | + '/project/my_app/.env.local', |
| 21 | + ) |
20 | 22 | }) |
21 | 23 |
|
22 | | - it('uses the provided project folder as cwd', async () => { |
| 24 | + it('uses the provided project folder for both paths', async () => { |
23 | 25 | await createEnvFile('/other/path') |
24 | 26 |
|
25 | | - expect(exec).toHaveBeenCalledWith(expect.any(String), { cwd: '/other/path' }) |
| 27 | + expect(copyFile).toHaveBeenCalledWith('/other/path/.env.example', '/other/path/.env.local') |
26 | 28 | }) |
27 | 29 |
|
28 | | - it('propagates errors from exec', async () => { |
29 | | - vi.mocked(exec).mockRejectedValueOnce(new Error('.env.example not found')) |
| 30 | + it('propagates errors from copyFile', async () => { |
| 31 | + vi.mocked(copyFile).mockRejectedValueOnce(new Error('.env.example not found')) |
30 | 32 |
|
31 | 33 | await expect(createEnvFile('/project/my_app')).rejects.toThrow('.env.example not found') |
32 | 34 | }) |
|
0 commit comments