@adikari/config-manager
Version:
Tool to deploy configs to different stores
64 lines (51 loc) • 1.61 kB
JavaScript
const mockGetParameters = jest.fn();
jest.mock('../../services/parameter-store/make-parameter-store', () => ({
makeParameterStore: () => ({
getParameters: mockGetParameters
})
}));
jest.mock('../../services/settings/make-settings-service', () => ({
makeSettingsService: () => ({
getSettings: () =>
Promise.resolve({
configParameters: ['/test/john', '/test/steph'],
secretParameters: ['/test/SOME_SECRET']
})
})
}));
const path = require('path');
const { makeConfigManager } = require('../../make-config-manager');
describe('fetch', () => {
const configManager = makeConfigManager({
stage: 'testing',
config: path.resolve(__dirname, '../../../mocks/ssm-provider.yml')
});
it('should retreive the requested keys', () => {
mockGetParameters.mockImplementation(() =>
Promise.resolve({
john: 'doe',
steph: 'curry'
})
);
expect.assertions(1);
return configManager.fetch({ keys: ['john', 'steph'] }).then(() => {
expect(mockGetParameters.mock.calls[0][0]).toEqual({
parameterNames: ['/test/john', '/test/steph']
});
});
});
it('should retreive the requested keys only if they exist', () => {
mockGetParameters.mockImplementation(() =>
Promise.resolve({
john: 'doe',
steph: 'curry'
})
);
expect.assertions(1);
return configManager.fetch({ keys: ['john', 'steph', 'test'] }).then(() => {
expect(mockGetParameters.mock.calls[0][0]).toEqual({
parameterNames: ['/test/john', '/test/steph']
});
});
});
});