docs/__tests__/SetupStore-test.js

70 lines
2.8 KiB
JavaScript

jest.dontMock('../src/stores/SetupStore');
var setupStore = require('../src/stores/SetupStore');
var virtualBox = require('../src/utils/VirtualBoxUtil');
var util = require('../src/utils/Util');
var machine = require('../src/utils/DockerMachineUtil');
var setupUtil = require('../src/utils/SetupUtil');
describe('SetupStore', function () {
describe('download step', function () {
util.packagejson.mockReturnValue({});
pit('downloads virtualbox if it is not installed', function () {
virtualBox.installed.mockReturnValue(false);
setupUtil.download.mockReturnValue(Promise.resolve());
virtualBox.filename.mockReturnValue('');
util.supportDir.mockReturnValue('');
return setupStore.steps().download.run().then(() => {
expect(setupUtil.download).toBeCalled();
});
});
pit('downloads virtualbox if it is installed but has an outdated version', function () {
virtualBox.installed.mockReturnValue(true);
virtualBox.version.mockReturnValue(Promise.resolve('4.3.16'));
util.compareVersions.mockReturnValue(-1);
setupUtil.download.mockReturnValue(Promise.resolve());
virtualBox.filename.mockReturnValue('');
util.supportDir.mockReturnValue('');
return setupStore.steps().download.run().then(() => {
expect(setupUtil.download).toBeCalled();
});
});
});
describe('install step', function () {
util.exec.mockReturnValue(Promise.resolve());
virtualBox.killall.mockReturnValue(Promise.resolve());
setupUtil.installVirtualBoxCmd.mockReturnValue(Promise.resolve());
setupUtil.macSudoCmd.mockImplementation(cmd => 'macsudo ' + cmd);
pit('installs virtualbox if it is not installed', function () {
virtualBox.installed.mockReturnValue(false);
util.exec.mockReturnValue(Promise.resolve());
return setupStore.steps().install.run(() => {}).then(() => {
expect(virtualBox.killall).toBeCalled();
expect(setupUtil.installVirtualBoxCmd).toBeCalled();
});
});
});
describe('init step', function () {
pit('upgrades the vm if it exists and is out of date', function () {
machine.exists.mockReturnValue(Promise.resolve(true));
machine.state.mockReturnValue(Promise.resolve('Stopped'));
machine.isoversion.mockReturnValue('1.0');
machine.stop.mockReturnValue(Promise.resolve());
machine.start.mockReturnValue(Promise.resolve());
machine.upgrade.mockReturnValue(Promise.resolve());
util.compareVersions.mockReturnValue(-1);
machine.create.mockClear();
machine.upgrade.mockClear();
machine.start.mockClear();
return setupStore.steps().init.run(() => {}).then(() => {
expect(machine.create).not.toBeCalled();
expect(machine.upgrade).toBeCalled();
expect(machine.start).toBeCalled();
});
});
});
});