Newer
Older
import { Test } from '@nestjs/testing';
import { ConfigurationService } from './configuration.service';
describe('ConfigurationService', () => {
let configurationService: ConfigurationService;
process.env.NODE_ENV = 'local';
beforeEach(async () => {
const module = await Test.createTestingModule({
imports: [],
providers: [ConfigurationService],
}).compile();
configurationService = module.get<ConfigurationService>(ConfigurationService);
});
describe('initialisation', () => {
const OLD_ENV = process.env;
beforeEach(async () => {
jest.resetModules(); // Most important - it clears the cache
process.env = { ...OLD_ENV }; // Make a copy
process.env.NODE_ENV = 'dev';
});
afterAll(() => {
process.env = OLD_ENV; // Restore old environment
});
it('should be defined', () => {
expect(configurationService).toBeDefined();
});
it('should init with dev conf', () => {
process.env.NODE_ENV = 'dev';
expect(configurationService.config.host).toBe('resin-dev.grandlyon.com');
});
});
describe('initialisation production', () => {
const OLD_ENV = process.env;
beforeEach(async () => {
jest.resetModules(); // Most important - it clears the cache
process.env = { ...OLD_ENV }; // Make a copy
process.env.NODE_ENV = 'production';
});
afterAll(() => {
process.env = OLD_ENV; // Restore old environment
});
it('should be defined', () => {
expect(configurationService).toBeDefined();
});
it('should init with prod conf', () => {
process.env.NODE_ENV = 'production';
expect(configurationService.config.host).toBe('resin.grandlyon.com');
});
});
describe('validateUser', () => {
it('should be local conf', () => {
process.env.NODE_ENV = 'local';
expect(configurationService.isLocalConf()).toBe(true);
});
});
describe('get config', () => {
it('should get config', () => {
const config = configurationService.config;
expect(Object.keys(config).length).toBe(9);
expect(Object.keys(config)).toEqual(
expect.arrayContaining([
'url',
'token',
'host',
'protocol',
'port',
'from',
'from_name',
'replyTo',
'templates',
])
);
});
});
});