diff options
Diffstat (limited to 'tst/env.test.ts')
| -rw-r--r-- | tst/env.test.ts | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/tst/env.test.ts b/tst/env.test.ts new file mode 100644 index 0000000..0fd7f5a --- /dev/null +++ b/tst/env.test.ts @@ -0,0 +1,32 @@ +import { getEnv, getRequiredEnv, getRequiredEnvVars } from '../lib/index'; + +describe('process/env', () => { + const originalEnv = process.env; + + beforeEach(() => { + process.env = { ...originalEnv }; + }); + + afterAll(() => { + process.env = originalEnv; + }); + + test('getEnv returns optional when present', () => { + process.env.MY_VAR = 'hello'; + expect(getEnv('MY_VAR').get()).toBe('hello'); + }); + + test('getRequiredEnv returns left when missing', () => { + delete process.env.MISSING; + const res = getRequiredEnv('MISSING'); + expect(res.left().get().message).toMatch(/environment variable "MISSING" is required/); + }); + + test('getRequiredEnvVars collects required variables', () => { + process.env.A = '1'; + process.env.B = '2'; + + const res = getRequiredEnvVars(['A', 'B'] as const); + expect(res.right().get()).toEqual({ A: '1', B: '2' }); + }); +}); |
