mirror of
https://github.com/n8n-io/n8n.git
synced 2024-11-14 08:34:07 -08:00
b350568505
Due to a change, during the credentials import command, the core's Credential object is being called through its prototype. This caused the Credential's cipher variable to not be set, thus no cipher service being available during import. This fix catches this edge case and provides a fix.
48 lines
1.4 KiB
TypeScript
48 lines
1.4 KiB
TypeScript
import * as Config from '@oclif/config';
|
|
|
|
import { InternalHooks } from '@/InternalHooks';
|
|
import { ImportCredentialsCommand } from '@/commands/import/credentials';
|
|
import { LoadNodesAndCredentials } from '@/LoadNodesAndCredentials';
|
|
import * as testDb from '../shared/testDb';
|
|
import { mockInstance } from '../shared/utils';
|
|
|
|
beforeAll(async () => {
|
|
mockInstance(InternalHooks);
|
|
mockInstance(LoadNodesAndCredentials);
|
|
await testDb.init();
|
|
});
|
|
|
|
beforeEach(async () => {
|
|
await testDb.truncate(['Credentials']);
|
|
});
|
|
|
|
afterAll(async () => {
|
|
await testDb.terminate();
|
|
});
|
|
|
|
test('import:credentials should import a credential', async () => {
|
|
const config: Config.IConfig = new Config.Config({ root: __dirname });
|
|
const before = await testDb.getAllCredentials();
|
|
expect(before.length).toBe(0);
|
|
const importer = new ImportCredentialsCommand(
|
|
['--input=./test/integration/commands/importCredentials/credentials.json'],
|
|
config,
|
|
);
|
|
const mockExit = jest.spyOn(process, 'exit').mockImplementation(() => {
|
|
throw new Error('process.exit');
|
|
});
|
|
|
|
await importer.init();
|
|
try {
|
|
await importer.run();
|
|
} catch (error) {
|
|
expect(error.message).toBe('process.exit');
|
|
}
|
|
const after = await testDb.getAllCredentials();
|
|
expect(after.length).toBe(1);
|
|
expect(after[0].name).toBe('cred-aws-test');
|
|
expect(after[0].id).toBe('123');
|
|
expect(after[0].nodesAccess).toStrictEqual([]);
|
|
mockExit.mockRestore();
|
|
});
|