oprah
Version:
Package to deploy parameters to AWS
58 lines (48 loc) • 1.46 kB
JavaScript
const mockGray = jest.fn();
jest.mock('chalk', () => ({
gray: mockGray
}));
const { makeUpdateSecrets } = require('./make-update-secrets');
const mockProviderUpdateSecrets = jest.fn(() => Promise.resolve());
const updateSecrets = makeUpdateSecrets({
getProviderStore: () =>
Promise.resolve({
updateSecrets: mockProviderUpdateSecrets
})
});
describe('updateSecrets', () => {
it(`should update secrets using the provider store`, () =>
updateSecrets({
parameters: {
HELLO_1: 'hello',
HELLO_2: 'world'
}
}).then(() => {
expect(mockProviderUpdateSecrets.mock.calls[0][0].parameters).toEqual({
HELLO_1: 'hello',
HELLO_2: 'world'
});
}));
it('should provide a callback onComplete to allow for logging', () => {
mockGray.mockClear();
return updateSecrets({
parameters: {
HELLO_1: 'hello',
HELLO_2: 'world'
}
}).then(() => {
const onCompleteHook =
mockProviderUpdateSecrets.mock.calls[0][0].onComplete;
onCompleteHook({
name: 'THE KEY',
value: 'theValue',
version: '00000000003'
});
expect(mockGray.mock.calls[0][0]).toEqual('Updating secrets...');
expect(mockGray.mock.calls[1][0]).toEqual('Secrets updated');
expect(mockGray.mock.calls[2][0]).toEqual(
'Updated secret: Name: THE KEY | Value: [8 chars] | Version: [00000000003]'
);
});
});
});