@spotinst/spinnaker-deck
Version:
Spinnaker-Deck service, forked with support to Spotinst
217 lines (159 loc) • 10.4 kB
JavaScript
import { registerDefaultFixtures } from '../../support';
describe('amazon ecs: ECSApp Server Group', () => {
beforeEach(() => {
registerDefaultFixtures();
cy.route('/applications/ecsapp/pipelines?**', 'fixture:ecs/pipelines/pipelines.json');
cy.route('/images/find?*', 'fixture:ecs/shared/images.json');
cy.route('/applications/ecsapp/pipelineConfigs', 'fixture:ecs/pipelines/pipelineConfigs.json');
cy.route('/pipelineConfigs/**', 'fixture:ecs/pipelines/pipelineConfigs.json');
cy.route('/networks/aws', 'fixture:ecs/default/networks.aws-ecs.json');
cy.route('/applications/ecsapp/serverGroups', 'fixture:ecs/clusters/serverGroups.json');
cy.route('/ecs/serviceDiscoveryRegistries', 'fixture:ecs/shared/serviceDiscoveryRegistries.json');
cy.route('/ecs/ecsClusters', 'fixture:ecs/shared/ecsClusters.json');
cy.route('/ecs/ecsClusterDescriptions/**', 'fixture:ecs/shared/ecsDescribeClusters.json');
cy.route('/ecs/secrets', []);
cy.route('/ecs/cloudMetrics/alarms', []);
cy.route('/artifacts/credentials', 'fixture:ecs/shared/artifacts.json');
cy.route('/roles/ecs', 'fixture:ecs/shared/roles.json');
cy.route('/subnets/ecs', 'fixture:ecs/shared/subnets.json');
cy.route('/loadBalancers?provider=ecs', 'fixture:ecs/shared/lb.json');
cy.route('/applications/ecsapp/clusters', 'fixture:ecs/clusters/clusters.json');
cy.route('/applications/ecsapp/loadBalancers', 'fixture:ecs/clusters/loadbalancers.json');
cy.route(
'/applications/ecsapp/serverGroups/**/aws-prod-ecsdemo-v000?includeDetails=false',
'fixture:ecs/clusters/serverGroup.ecsdemo-v000.json',
);
});
it('configure a new server group with artifacts', () => {
cy.visit('#/applications/ecsapp/executions');
cy.get('a:contains("Configure")').click();
cy.get('a:contains("Deploy")').click();
cy.get('[data-test-id="Deploy.addServerGroup"]').click();
cy.get('span:contains("Continue")').click();
cy.get('[data-test-id="ServerGroup.clusterName"]').type('spinnaker-deployment-cluster');
cy.get('span:contains("spinnaker-deployment-cluster")').click();
cy.get('[data-test-id="ServerGroup.stack"]').type('create');
cy.get('[data-test-id="ServerGroup.details"]').type('artifact');
cy.get('[data-test-id="Networking.networkMode"]').type('awsvpc');
cy.get('.Select-option:contains("awsvpc")').click();
cy.get('[data-test-id="Networking.subnetType"]').type('public');
cy.get('.Select-option:contains("public-subnet")').click();
cy.get('[data-test-id="Networking.associatePublicIpAddressFalse"]').click();
cy.get('[data-test-id="ServerGroup.useArtifacts"]').click();
cy.get('task-definition-react .Select-placeholder:contains("Select an artifact")').type(' ');
cy.get('task-definition-react .Select-option:contains("Define")').click();
cy.get('task-definition-react input').eq(3).type('new-ecs-artifact');
cy.get('task-definition-react input').eq(4).type('0.0.1');
cy.get('task-definition-react input').eq(5).type('someLocation');
cy.get('task-definition-react input').eq(6).type('someReference');
cy.get('[data-test-id="Artifacts.containerAdd"]').click();
cy.get('[data-test-id="Artifacts.containerName"]').type('v001-container');
cy.get('[data-test-id="Artifacts.containerImage"]').type('TRIGGER');
cy.get('.Select-option:contains("TRIGGER")').click();
cy.get('[data-test-id="Artifacts.targetGroupAdd"]').click();
cy.get('[data-test-id="Artifacts.targetGroupContainer"]').type('v001-container');
cy.get('[data-test-id="Artifacts.targetGroup"]').type('demo');
cy.get('.Select-option:contains("demo")').click();
cy.get('[data-test-id="ServerGroup.launchType"]').type('FARGATE');
cy.get('.ui-select-highlight:contains("FARGATE")').click();
cy.get('[data-test-id="ServerGroupWizard.submitButton"]').click();
cy.get('.account-tag').should('have.length', 2);
cy.get('td:contains("ecsapp-prod-ecsdemo")').should('have.length', 1);
cy.get('td:contains("ecsapp-create-artifact")').should('have.length', 1);
cy.get('td:contains("us-west-2")').should('have.length', 2);
cy.get('[data-test-id="Pipeline.revertChanges"]').click();
});
it('configure a new server group with container inputs', () => {
cy.visit('#/applications/ecsapp/executions');
cy.get('a:contains("Configure")').click();
cy.get('a:contains("Deploy")').click();
cy.get('[data-test-id="Deploy.addServerGroup"]').click();
cy.get('span:contains("Continue")').click();
cy.get('[data-test-id="ServerGroup.clusterName"]').type('spinnaker-deployment-cluster');
cy.get('span:contains("spinnaker-deployment-cluster")').click();
cy.get('[data-test-id="ServerGroup.stack"]').type('create');
cy.get('[data-test-id="ServerGroup.details"]').type('inputs');
cy.get('[data-test-id="Networking.networkMode"]').type('awsvpc');
cy.get('.Select-option:contains("awsvpc")').click();
cy.get('[data-test-id="Networking.subnetType"]').type('public');
cy.get('.Select-option:contains("public-subnet")').click();
cy.get('[data-test-id="Networking.associatePublicIpAddressFalse"]').click();
cy.get('[data-test-id="ContainerInputs.containerImage"]').type('TRIGGER');
cy.get('.Select-option:contains("TRIGGER")').click();
cy.get('[data-test-id="ContainerInputs.computeUnits"]').type(1024);
cy.get('[data-test-id="ContainerInputs.reservedMemory"]').type(1024);
cy.get('[data-test-id="ServerGroup.launchType"]').type('FARGATE');
cy.get('.ui-select-highlight:contains("FARGATE")').click();
cy.get('[data-test-id="Logging.logDriver"]').type('awslogs');
cy.get('span:contains("awslogs")').click();
cy.get('[data-test-id="ServerGroupWizard.submitButton"]').click();
cy.get('.account-tag').should('have.length', 2);
cy.get('td:contains("ecsapp-prod-ecsdemo")').should('have.length', 1);
cy.get('td:contains("ecsapp-create-inputs")').should('have.length', 1);
cy.get('td:contains("us-west-2")').should('have.length', 2);
cy.get('[data-test-id="Pipeline.revertChanges"]').click();
});
it('edit an existing server group with container inputs', () => {
cy.visit('#/applications/ecsapp/executions');
cy.get('a:contains("Configure")').click();
cy.get('a:contains("Deploy")').click();
cy.get('.glyphicon-edit').click();
cy.get('[data-test-id="ServerGroup.stack"]').clear().type('edit');
cy.get('[data-test-id="ServerGroup.details"]').clear().type('inputs');
cy.get('[data-test-id="ServerGroup.useInputs"]').click();
cy.get('[data-test-id="ContainerInputs.computeUnits"]').clear().type(1024);
cy.get('[data-test-id="ContainerInputs.reservedMemory"]').clear().type(2048);
cy.get('[data-test-id="ServerGroupWizard.submitButton"]').click();
cy.get('.account-tag').should('have.length', 1);
cy.get('td:contains("ecsapp-edit-inputs")').should('have.length', 1);
cy.get('td:contains("us-west-2")').should('have.length', 1);
cy.get('.glyphicon-edit').click();
cy.get('[data-test-id="ContainerInputs.computeUnits"]').should('have.value', '1024');
cy.get('[data-test-id="ContainerInputs.reservedMemory"]').should('have.value', '2048');
cy.get('[data-test-id="ServerGroupWizard.submitButton"]').click();
cy.get('[data-test-id="Pipeline.revertChanges"]').click();
});
it('edit an existing server group to use default capacity providers', () => {
cy.visit('#/applications/ecsapp/executions');
cy.get('a:contains("Configure")').click();
cy.get('a:contains("Deploy")').click();
cy.get('.glyphicon-edit').click();
cy.get('[data-test-id="ServerGroup.stack"]').clear().type('edit');
cy.get('[data-test-id="ServerGroup.details"]').clear().type('computeOptions');
cy.get('[data-test-id="ServerGroup.clusterName"]').type('example-app-test-Cluster-NSnYsTXmCfV2');
cy.get('span:contains("example-app-test-Cluster-NSnYsTXmCfV2")').click();
cy.get('[data-test-id="ServerGroup.computeOptionsCapacityProviders"]').click();
cy.get('[data-test-id="ServerGroup.capacityProviders.default"]').click();
cy.get('[data-test-id="ServerGroupWizard.submitButton"]').click();
cy.get('.glyphicon-edit').click();
cy.get('[data-test-id="ServerGroup.defaultCapacityProvider.name.0"]').should('have.value', 'FARGATE_SPOT');
cy.get('[data-test-id="ServerGroup.capacityProvider.base.0"]').should('have.value', '0');
cy.get('[data-test-id="ServerGroup.capacityProvider.weight.0"]').should('have.value', '1');
cy.get('[data-test-id="ServerGroupWizard.submitButton"]').click();
cy.get('[data-test-id="Pipeline.revertChanges"]').click();
});
it('edit an existing server group to use custom capacity providers', () => {
cy.visit('#/applications/ecsapp/executions');
cy.get('a:contains("Configure")').click();
cy.get('a:contains("Deploy")').click();
cy.get('.glyphicon-edit').click();
cy.get('[data-test-id="ServerGroup.stack"]').clear().type('edit');
cy.get('[data-test-id="ServerGroup.details"]').clear().type('computeOptions');
cy.get('[data-test-id="ServerGroup.clusterName"]').type('example-app-test-Cluster-NSnYsTXmCfV2');
cy.get('span:contains("example-app-test-Cluster-NSnYsTXmCfV2")').click();
cy.get('[data-test-id="ServerGroup.computeOptionsCapacityProviders"]').click();
cy.get('[data-test-id="ServerGroup.capacityProviders.custom"]').click();
cy.get('[data-test-id="ServerGroup.addCapacityProvider"]').click();
cy.get('[data-test-id="ServerGroup.customCapacityProvider.name.0"]').type('FARGATE_SPOT');
cy.get('.Select-option:contains("FARGATE_SPOT")').click();
cy.get('[data-test-id="ServerGroup.capacityProvider.base.0"]').type(1);
cy.get('[data-test-id="ServerGroup.capacityProvider.weight.0"]').type(2);
cy.get('[data-test-id="ServerGroupWizard.submitButton"]').click();
cy.get('.glyphicon-edit').click();
cy.get('[data-test-id="ServerGroup.customCapacityProvider.name.0"]').find('.Select-value-label').should('have.text', 'FARGATE_SPOT');
cy.get('[data-test-id="ServerGroup.capacityProvider.base.0"]').should('have.value', '1');
cy.get('[data-test-id="ServerGroup.capacityProvider.weight.0"]').should('have.value', '2');
cy.get('[data-test-id="ServerGroupWizard.submitButton"]').click();
cy.get('[data-test-id="Pipeline.revertChanges"]').click();
});
});