|
1 | 1 | import { makeEnvPublic } from './make-env-public'; |
2 | 2 |
|
| 3 | +const warnSpy = jest.spyOn(console, 'warn'); |
| 4 | + |
| 5 | +beforeAll(() => { |
| 6 | + warnSpy.mockImplementation(); |
| 7 | +}); |
| 8 | + |
| 9 | +afterAll(() => { |
| 10 | + warnSpy.mockRestore(); |
| 11 | +}); |
| 12 | + |
3 | 13 | describe('makeEnvPublic()', () => { |
4 | 14 | afterEach(() => { |
5 | 15 | delete process.env.FOO; |
| 16 | + delete process.env.BAR; |
| 17 | + delete process.env.BAZ; |
6 | 18 | delete process.env.NEXT_PUBLIC_FOO; |
| 19 | + delete process.env.NEXT_PUBLIC_BAR; |
| 20 | + delete process.env.NEXT_PUBLIC_BAZ; |
7 | 21 | }); |
8 | 22 |
|
9 | 23 | it('should prefix an env var with NEXT_PUBLIC_', () => { |
10 | 24 | process.env.FOO = 'foo'; |
11 | 25 |
|
12 | 26 | makeEnvPublic('FOO'); |
13 | 27 |
|
14 | | - expect(process.env.FOO).toBeDefined(); |
15 | | - expect(process.env.NEXT_PUBLIC_FOO).toBeDefined(); |
| 28 | + expect(process.env.FOO).toEqual('foo'); |
| 29 | + expect(process.env.NEXT_PUBLIC_FOO).toEqual('foo'); |
16 | 30 | }); |
17 | 31 |
|
18 | | - it('should copy the value to the new NEXT_PUBLIC_ env var', () => { |
| 32 | + it('should prefix multiple env vars with NEXT_PUBLIC_', () => { |
19 | 33 | process.env.FOO = 'foo'; |
| 34 | + process.env.BAR = 'bar'; |
| 35 | + process.env.BAZ = 'baz'; |
20 | 36 |
|
21 | | - makeEnvPublic('FOO'); |
| 37 | + makeEnvPublic(['FOO', 'BAR', 'BAZ']); |
22 | 38 |
|
23 | 39 | expect(process.env.FOO).toEqual('foo'); |
24 | 40 | expect(process.env.NEXT_PUBLIC_FOO).toEqual('foo'); |
| 41 | + expect(process.env.BAR).toEqual('bar'); |
| 42 | + expect(process.env.NEXT_PUBLIC_BAR).toEqual('bar'); |
| 43 | + expect(process.env.BAZ).toEqual('baz'); |
| 44 | + expect(process.env.NEXT_PUBLIC_BAZ).toEqual('baz'); |
25 | 45 | }); |
26 | 46 |
|
27 | | - it('should throw when the env var already starts with NEXT_PUBLIC_', () => { |
| 47 | + it('should warn when the env var already starts with NEXT_PUBLIC_', () => { |
28 | 48 | process.env.NEXT_PUBLIC_FOO = 'foo'; |
29 | 49 |
|
30 | | - expect(() => { |
31 | | - makeEnvPublic('NEXT_PUBLIC_FOO'); |
32 | | - }).toThrowError( |
33 | | - 'The environment variable "NEXT_PUBLIC_FOO" is already public.' |
| 50 | + makeEnvPublic('NEXT_PUBLIC_FOO'); |
| 51 | + |
| 52 | + expect(warnSpy).toHaveBeenCalledWith( |
| 53 | + '> [next-runtime-env] The environment variable "NEXT_PUBLIC_FOO" is already public.' |
34 | 54 | ); |
35 | 55 | }); |
36 | 56 | }); |
0 commit comments