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' }); }); });