-
Notifications
You must be signed in to change notification settings - Fork 121
/
SeededPodInitializer.test.ts
55 lines (48 loc) · 2.07 KB
/
SeededPodInitializer.test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import { writeJson } from 'fs-extra';
import type { RegistrationManager } from '../../../src/identity/interaction/email-password/util/RegistrationManager';
import { SeededPodInitializer } from '../../../src/init/SeededPodInitializer';
import { mockFileSystem } from '../../util/Util';
jest.mock('fs');
jest.mock('fs-extra');
describe('A SeededPodInitializer', (): void => {
const dummyConfig = [
{
podName: 'example',
email: 'hello@example.com',
password: 'abc123',
},
{
podName: 'example2',
email: 'hello2@example.com',
password: '123abc',
},
];
let registrationManager: RegistrationManager;
let configFilePath: string | null;
beforeEach(async(): Promise<void> => {
configFilePath = './seeded-pod-config.json';
registrationManager = {
validateInput: jest.fn((input): any => input),
register: jest.fn(),
} as any;
mockFileSystem('/');
await writeJson(configFilePath, dummyConfig);
});
it('does not generate any accounts or pods if no config file is specified.', async(): Promise<void> => {
configFilePath = null;
await new SeededPodInitializer(registrationManager, configFilePath).handle();
expect(registrationManager.validateInput).not.toHaveBeenCalled();
expect(registrationManager.register).not.toHaveBeenCalled();
});
it('generates an account and a pod for every entry in the seeded pod configuration.', async(): Promise<void> => {
await new SeededPodInitializer(registrationManager, configFilePath).handle();
expect(registrationManager.validateInput).toHaveBeenCalledTimes(2);
expect(registrationManager.register).toHaveBeenCalledTimes(2);
});
it('does not throw exceptions when a seeded pod already exists.', async(): Promise<void> => {
registrationManager.register = jest.fn().mockRejectedValueOnce(new Error('Pod already exists'));
await new SeededPodInitializer(registrationManager, configFilePath).handle();
expect(registrationManager.validateInput).toHaveBeenCalledTimes(2);
expect(registrationManager.register).toHaveBeenCalledTimes(2);
});
});