From 666674327f009e9b1013218fc384f193b64c6997 Mon Sep 17 00:00:00 2001 From: Elizabeth Hunt Date: Sun, 14 Dec 2025 22:39:18 -0800 Subject: Adds unit tests --- tst/env.test.ts | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 tst/env.test.ts (limited to 'tst/env.test.ts') 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' }); + }); +}); -- cgit v1.2.3-70-g09d2