import { afterEach, expect, test, vi } from 'vitest';
async function importConfig() {
vi.resetModules();
return import('../src/config');
}
afterEach(() => {
vi.unstubAllEnvs();
vi.resetModules();
});
test('拒绝非法 NODE_ENV,避免运行时环境突破配置契约', async () => {
vi.stubEnv('NODE_ENV', 'prod');
await expect(importConfig()).rejects.toThrow('Invalid NODE_ENV');
});
test('拒绝非法 AGENT_STRICT_PORT,避免生产环境静默关闭严格端口', async () => {
vi.stubEnv('NODE_ENV', 'production');
vi.stubEnv('AGENT_STRICT_PORT', 'fasle');
await expect(importConfig()).rejects.toThrow('Invalid AGENT_STRICT_PORT');
});
test('规范化合法 NODE_ENV 后再推断严格端口默认值', async () => {
vi.stubEnv('NODE_ENV', ' Production ');
const { config } = await importConfig();
expect(config.app.env).toBe('production');
expect(config.app.strictPort).toBe(true);
});
test('接受 NODE_ENV=test 作为非生产运行环境', async () => {
vi.stubEnv('NODE_ENV', 'test');
const { config } = await importConfig();
expect(config.app.env).toBe('test');
expect(config.app.strictPort).toBe(false);
});
test('规范化合法 AGENT_STRICT_PORT 后再覆盖默认值', async () => {
vi.stubEnv('NODE_ENV', 'production');
vi.stubEnv('AGENT_STRICT_PORT', ' TRUE ');
const { config } = await importConfig();
expect(config.app.strictPort).toBe(true);
});