@spotinst/spinnaker-deck
Version:
Spinnaker-Deck service, forked with support to Spotinst
257 lines (226 loc) • 6.69 kB
JavaScript
;
describe('azureServerGroupTransformer', function () {
var transformer;
beforeEach(window.module(require('./serverGroup.transformer').name));
beforeEach(function () {
window.inject(function (_azureServerGroupTransformer_) {
transformer = _azureServerGroupTransformer_;
});
});
describe('command transforms', function () {
it('sets name correctly with no stack or detail', function () {
var base = {
application: 'myApp',
sku: {
capacity: 1,
},
selectedImage: {
publisher: 'Microsoft',
offer: 'Windows',
sku: 'Server2016',
version: '12.0.0.1',
},
selectedVnet: {},
viewState: {
mode: 'create',
},
};
var transformed = transformer.convertServerGroupCommandToDeployConfiguration(base);
expect(transformed.name).toBe('myApp');
});
it('it sets name correctly with only stack', function () {
var command = {
stack: 's1',
application: 'theApp',
sku: {
capacity: 1,
},
selectedImage: {
publisher: 'Microsoft',
offer: 'Windows',
sku: 'Server2016',
version: '12.0.0.1',
},
selectedVnet: {},
viewState: {
mode: 'create',
},
};
var transformed = transformer.convertServerGroupCommandToDeployConfiguration(command);
expect(transformed.name).toBe('theApp-s1');
});
it('it sets name correctly with only detail', function () {
var command = {
freeFormDetails: 'd1',
application: 'theApp',
sku: {
capacity: 1,
},
selectedImage: {
publisher: 'Microsoft',
offer: 'Windows',
sku: 'Server2016',
version: '12.0.0.1',
},
selectedVnet: {},
viewState: {
mode: 'create',
},
};
var transformed = transformer.convertServerGroupCommandToDeployConfiguration(command);
expect(transformed.name).toBe('theApp-d1');
});
it('it sets name correctly with both stack and detail', function () {
var command = {
stack: 's1',
freeFormDetails: 'd1',
application: 'theApp',
sku: {
capacity: 1,
},
selectedImage: {
publisher: 'Microsoft',
offer: 'Windows',
sku: 'Server2016',
version: '12.0.0.1',
},
selectedVnet: {},
viewState: {
mode: 'create',
},
};
var transformed = transformer.convertServerGroupCommandToDeployConfiguration(command);
expect(transformed.name).toBe('theApp-s1-d1');
});
it('it sets the Advanced Settings correctly when provided', function () {
var command = {
stack: 's1',
freeFormDetails: 'd1',
application: 'theApp',
sku: {
capacity: 1,
},
selectedImage: {
publisher: 'Microsoft',
offer: 'Windows',
sku: 'Server2016',
version: '12.0.0.1',
},
selectedVnet: {},
viewState: {
mode: 'create',
},
osConfig: {
customData: 'this is custom data',
},
customScriptsSettings: {
fileUris: 'file1',
commandToExecute: 'do_this',
},
};
var customScript = {
fileUris: ['file1'],
commandToExecute: 'do_this',
};
var transformed = transformer.convertServerGroupCommandToDeployConfiguration(command);
expect(transformed.osConfig.customData).toBe('this is custom data');
expect(transformed.customScriptsSettings).toEqual(customScript);
});
it('it sets the Advanced Settings correctly when not provided', function () {
var command = {
stack: 's1',
freeFormDetails: 'd1',
application: 'theApp',
sku: {
capacity: 1,
},
selectedImage: {
publisher: 'Microsoft',
offer: 'Windows',
sku: 'Server2016',
version: '12.0.0.1',
},
selectedVnet: {},
viewState: {
mode: 'create',
},
};
var transformed = transformer.convertServerGroupCommandToDeployConfiguration(command);
expect(transformed.customScriptsSettings).toBeDefined();
expect(transformed.customScriptsSettings.fileUris).toBeNull();
expect(transformed.customScriptsSettings.commandToExecute).toBe('');
});
it('it sets the zones information', function () {
var command = {
zonesEnabled: true,
zones: ['1', '3'],
stack: 's1',
freeFormDetails: 'd1',
application: 'theApp',
sku: {
capacity: 1,
},
selectedImage: {
publisher: 'Microsoft',
offer: 'Windows',
sku: 'Server2016',
version: '12.0.0.1',
},
selectedVnet: {},
viewState: {
mode: 'create',
},
};
var transformed = transformer.convertServerGroupCommandToDeployConfiguration(command);
expect(transformed.zonesEnabled).toEqual(true);
expect(transformed.zones).toEqual(command.zones);
});
it('it should not set the zones information if zonesEnabled is false', function () {
var command = {
zonesEnabled: false,
zones: ['1', '3'],
stack: 's1',
freeFormDetails: 'd1',
application: 'theApp',
sku: {
capacity: 1,
},
selectedImage: {
publisher: 'Microsoft',
offer: 'Windows',
sku: 'Server2016',
version: '12.0.0.1',
},
selectedVnet: {},
viewState: {
mode: 'create',
},
};
var transformed = transformer.convertServerGroupCommandToDeployConfiguration(command);
expect(transformed.zonesEnabled).toEqual(false);
expect(transformed.zones).toEqual([]);
});
it('sets instance tags correctly when provided', function () {
let imap = new Map();
var base = {
application: 'myApp',
sku: {
capacity: 1,
},
selectedImage: {
publisher: 'Microsoft',
offer: 'Windows',
sku: 'Server2016',
version: '12.0.0.1',
},
selectedVnet: {},
viewState: {
mode: 'create',
},
instanceTags: imap,
};
var transformed = transformer.convertServerGroupCommandToDeployConfiguration(base);
expect(transformed.instanceTags).toBe(imap);
});
});
});