38 lines
1.2 KiB
JavaScript
38 lines
1.2 KiB
JavaScript
import Cloud from '../../src/scaffolding/cloud';
|
|
|
|
const cloudManager = () => new Cloud.CloudManager({
|
|
vm: {
|
|
runtime: {
|
|
hasCloudData: () => true
|
|
}
|
|
}
|
|
});
|
|
|
|
const mockProvider = () => ({
|
|
enable: () => {},
|
|
handleUpdateVariable: jest.fn()
|
|
});
|
|
|
|
test('CloudManager providers and overrides', () => {
|
|
const manager = cloudManager();
|
|
const provider1 = mockProvider();
|
|
const provider2 = mockProvider();
|
|
expect(() => manager.addProviderOverride('test', provider1)).toThrow('Manager is not aware of this provider');
|
|
|
|
manager.addProvider(provider1);
|
|
manager.addProvider(provider2);
|
|
manager.updateVariable('test', '123');
|
|
expect(provider1.handleUpdateVariable).toHaveBeenCalledTimes(1);
|
|
expect(provider2.handleUpdateVariable).toHaveBeenCalledTimes(1);
|
|
|
|
manager.addProviderOverride('test', provider1);
|
|
manager.updateVariable('test', '456');
|
|
expect(provider1.handleUpdateVariable).toHaveBeenCalledTimes(2);
|
|
expect(provider2.handleUpdateVariable).toHaveBeenCalledTimes(1);
|
|
|
|
manager.addProviderOverride('test2', null);
|
|
manager.updateVariable('test2', '789');
|
|
expect(provider1.handleUpdateVariable).toHaveBeenCalledTimes(2);
|
|
expect(provider2.handleUpdateVariable).toHaveBeenCalledTimes(1);
|
|
});
|