63 lines
1.7 KiB
TypeScript
63 lines
1.7 KiB
TypeScript
import {
|
|
isCloudEnvironment,
|
|
isOAuthSharedKeysAvailable,
|
|
isDevelopment,
|
|
isProduction,
|
|
} from '../../src/utils/environment';
|
|
import { describe, it, expect, beforeEach, afterAll } from 'vitest';
|
|
|
|
describe('Environment utils', () => {
|
|
const OLD_ENV = process.env;
|
|
|
|
beforeEach(() => {
|
|
process.env = { ...OLD_ENV };
|
|
});
|
|
|
|
afterAll(() => {
|
|
process.env = OLD_ENV;
|
|
});
|
|
|
|
it('isCloudEnvironment returns true if AWS_INSTANCE_PROFILE_NAME is set', () => {
|
|
process.env.AWS_INSTANCE_PROFILE_NAME = 'my-profile';
|
|
expect(isCloudEnvironment()).toBe(true);
|
|
});
|
|
|
|
it('isCloudEnvironment returns false if AWS_INSTANCE_PROFILE_NAME is missing', () => {
|
|
delete process.env.AWS_INSTANCE_PROFILE_NAME;
|
|
expect(isCloudEnvironment()).toBe(false);
|
|
});
|
|
|
|
it('isOAuthSharedKeysAvailable returns same as isCloudEnvironment', () => {
|
|
process.env.AWS_INSTANCE_PROFILE_NAME = 'profile';
|
|
expect(isOAuthSharedKeysAvailable()).toBe(true);
|
|
|
|
delete process.env.AWS_INSTANCE_PROFILE_NAME;
|
|
expect(isOAuthSharedKeysAvailable()).toBe(false);
|
|
});
|
|
|
|
it('isDevelopment works correctly', () => {
|
|
process.env.NODE_ENV = 'development';
|
|
expect(isDevelopment()).toBe(true);
|
|
|
|
process.env.NODE_ENV = 'production';
|
|
expect(isDevelopment()).toBe(false);
|
|
|
|
process.env.NODE_ENV = 'test';
|
|
expect(isDevelopment()).toBe(false);
|
|
|
|
delete process.env.NODE_ENV;
|
|
expect(isDevelopment()).toBe(false);
|
|
});
|
|
|
|
it('isProduction works correctly', () => {
|
|
process.env.NODE_ENV = 'production';
|
|
expect(isProduction()).toBe(true);
|
|
|
|
process.env.NODE_ENV = 'development';
|
|
expect(isProduction()).toBe(false);
|
|
|
|
delete process.env.NODE_ENV;
|
|
expect(isProduction()).toBe(false);
|
|
});
|
|
});
|