Skip to content

Commit ffc4f70

Browse files
authored
Merge pull request #346 from smiclea/CORWEB-194
Fix and update Cypress End To End tests CORWEB-194
2 parents 98feb0c + 4629e3c commit ffc4f70

28 files changed

Lines changed: 598 additions & 637 deletions

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
"@storybook/react": "^3.2.15",
3838
"babel-eslint": "^8.0.1",
3939
"babel-jest": "^21.2.0",
40-
"cypress": "3.0.3",
40+
"cypress": "^3.2.0",
4141
"enzyme": "^3.9.0",
4242
"enzyme-adapter-react-16": "^1.11.2",
4343
"eslint": "^4.8.0",

private/cypress/config.template.js

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export default {
1818
nodeServer: 'http://localhost:3000/',
1919
coriolisUrl: '',
2020
username: 'cypress',
21-
password: '',
21+
password: 'cypress',
2222
endpoints: {
2323
azure: {
2424
username: '',
@@ -31,14 +31,16 @@ export default {
3131
host: '',
3232
},
3333
openstack: {
34-
userDomainName: 'Default',
34+
userDomainName: '',
3535
authUrl: '',
36-
projectName: 'admin',
36+
projectName: '',
3737
projectDomainName: '',
3838
password: '',
39-
username: 'admin',
39+
username: '',
4040
glanceApiVersion: 2,
4141
identityVersion: 3,
42+
allowUntrusted: true,
43+
allowUntrustedSwift: true,
4244
},
4345
oci: {
4446
privateKeyData: '',
@@ -50,25 +52,18 @@ export default {
5052
},
5153
wizard: {
5254
azure: {
53-
resourceGroup: { label: '', value: '' },
54-
},
55-
openstack: {
56-
network: '',
55+
resourceGroup: { label: 'Coriolis', value: 'coriolis' },
5756
},
5857
oci: {
59-
compartment: {
60-
label: '', value: '',
61-
},
62-
migrSubnetId: {
63-
label: '', value: '',
64-
},
58+
compartment: '',
59+
migrSubnetId: '',
6560
availabilityDomain: '',
6661
},
6762
instancesSearch: {
68-
vmwareSearchText: 'ubuntu 14.04',
69-
vmwareItemIndex: 1,
70-
ociSearchText: 'ubuntu',
71-
ociItemIndex: 0,
63+
vmwareSearchText: '',
64+
vmwareItemIndex: 0,
65+
openstackSearchText: '',
66+
openstackItemIndex: 0,
7267
},
7368
},
7469
}

private/cypress/integration/0 - cleanup/Cleanup.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ describe('Cleaning up Cypress environment', () => {
2424
})
2525

2626
it('Loaded the UI', () => {
27-
cy.get('[data-test-id="navigation-item-replicas"]').should('exist')
27+
cy.getById('navigation-item-replicas').should('exist')
2828
cy.cleanup()
2929
})
3030

private/cypress/integration/1 - login/Invalid Login.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
1616

1717
import config from '../../config'
1818

19-
declare var cy: any
20-
2119
describe('Coriolis Login Failed', () => {
2220
before(() => {
2321
cy.logout()
@@ -38,6 +36,6 @@ describe('Coriolis Login Failed', () => {
3836
cy.get('button').click()
3937
cy.wait('@login')
4038

41-
cy.get('#app').should('contain', 'The username or password did not match.')
39+
cy.get('#app').should('contain', 'Incorrect credentials.')
4240
})
4341
})

private/cypress/integration/2 - create endpoints/Create Azure Endpoint.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,13 @@ describe('Create Azure Endpoint', () => {
2727

2828
it('Shows new Azure endpoint dialog', () => {
2929
cy.get('div').contains('New').click()
30-
cy.get('a').contains('Endpoint').click()
31-
cy.get('div[data-test-id="cProvider-endpointLogo-azure"]').click()
30+
cy.getById('newItemDropdown-listItem-Endpoint').click()
31+
cy.getById('cProvider-endpointLogo-azure').click()
3232
})
3333

3434
it('Fills Azure connection info', () => {
3535
cy.get('input[placeholder="Name"]').type('e2e-azure-test')
36-
cy.get('div[data-test-id="endpointField-switch-allow_untrusted"]').click()
36+
cy.getById('endpointField-switch-allow_untrusted').click()
3737
cy.get('input[placeholder="Username"]').type(config.endpoints.azure.username)
3838
cy.get('input[placeholder="Password"]').type(config.endpoints.azure.password)
3939
cy.get('input[placeholder="Subscription ID"]').type(config.endpoints.azure.subscriptionId)
@@ -42,11 +42,11 @@ describe('Create Azure Endpoint', () => {
4242
cy.route({ url: '**/actions', method: 'POST' }).as('validate')
4343
cy.get('button').contains('Validate and save').click()
4444
cy.wait('@validate')
45-
cy.get('div[data-test-id="endpointStatus"]').should('contain', 'Endpoint is Valid')
45+
cy.getById('endpointStatus').should('contain', 'Endpoint is Valid')
4646
})
4747

4848
it('Added Endpoint to endpoint list', () => {
49-
cy.get('a[data-test-id="navigation-item-endpoints"]').click()
50-
cy.get('div[data-test-id="endpointListItem-content-e2e-azure-test"]').should('contain', 'e2e-azure-test')
49+
cy.getById('navigation-smallMenuItem-endpoints').click()
50+
cy.getById('endpointListItem-content-e2e-azure-test').should('contain', 'e2e-azure-test')
5151
})
5252
})

private/cypress/integration/2 - create endpoints/Create OCI Endpoint.js

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -27,26 +27,27 @@ describe('Create OCI Endpoint', () => {
2727

2828
it('Shows new OCI endpoint dialog', () => {
2929
cy.get('div').contains('New').click()
30-
cy.get('a').contains('Endpoint').click()
31-
cy.get('div[data-test-id="cProvider-endpointLogo-oci"]').click()
30+
cy.getById('newItemDropdown-listItem-Endpoint').click()
31+
cy.getById('cProvider-endpointLogo-oci').click()
3232
})
3333

3434
it('Fills OCI connection info', () => {
35-
cy.get('input[data-test-id="endpointField-textInput-name"]').type('e2e-oci-test')
36-
cy.get('textarea[data-test-id="endpointField-textArea-private_key_data"]').type(config.endpoints.oci.privateKeyData, { delay: 0 })
37-
cy.get('input[data-test-id="endpointField-textInput-region"]').type(config.endpoints.oci.region)
38-
cy.get('input[data-test-id="endpointField-textInput-tenancy"]').type(config.endpoints.oci.tenancy)
39-
cy.get('input[data-test-id="endpointField-textInput-user"]').type(config.endpoints.oci.user)
40-
cy.get('input[data-test-id="endpointField-textInput-private_key_passphrase"]').type(config.endpoints.oci.privateKeyPassphrase)
35+
cy.getById('endpointField-textInput-name', 'input').type('e2e-oci-test')
36+
cy.getById('endpointField-textArea-private_key_data', 'textarea')
37+
.type(config.endpoints.oci.privateKeyData, { delay: 0 })
38+
cy.getById('endpointField-textInput-region', 'input').type(config.endpoints.oci.region)
39+
cy.getById('endpointField-textInput-tenancy', 'input').type(config.endpoints.oci.tenancy)
40+
cy.getById('endpointField-textInput-user', 'input').type(config.endpoints.oci.user)
41+
cy.getById('endpointField-textInput-private_key_passphrase', 'input').type(config.endpoints.oci.privateKeyPassphrase)
4142
cy.server()
4243
cy.route({ url: '**/actions', method: 'POST' }).as('validate')
4344
cy.get('button').contains('Validate and save').click()
4445
cy.wait('@validate')
45-
cy.get('div[data-test-id="endpointStatus"]').should('contain', 'Endpoint is Valid')
46+
cy.getById('endpointStatus').should('contain', 'Endpoint is Valid')
4647
})
4748

4849
it('Added Endpoint to endpoint list', () => {
49-
cy.get('a[data-test-id="navigation-item-endpoints"]').click()
50-
cy.get('div[data-test-id="endpointListItem-content-e2e-oci-test"]').should('contain', 'e2e-oci-test')
50+
cy.getById('navigation-smallMenuItem-endpoints').click()
51+
cy.getById('endpointListItem-content-e2e-oci-test').should('contain', 'e2e-oci-test')
5152
})
5253
})

private/cypress/integration/2 - create endpoints/Create Openstack Endpoint.js

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,33 +27,40 @@ describe('Create Openstack Endpoint', () => {
2727

2828
it('Shows new Openstack endpoint dialog', () => {
2929
cy.get('div').contains('New').click()
30-
cy.get('a').contains('Endpoint').click()
31-
cy.get('div[data-test-id="cProvider-endpointLogo-openstack"]').click()
30+
cy.getById('newItemDropdown-listItem-Endpoint').click()
31+
cy.getById('cProvider-endpointLogo-openstack').click()
3232
})
3333

3434
it('Fills Openstack connection info', () => {
3535
cy.get('div').contains('Advanced').click()
3636
cy.get('input[placeholder="Name"]').type('e2e-openstack-test')
3737
cy.get('input[placeholder="Username"]').type(config.endpoints.openstack.username)
3838
cy.get('input[placeholder="Password"]').type(config.endpoints.openstack.password)
39-
cy.get('input[placeholder="Auth URL"]').type(config.endpoints.openstack.authUrl)
39+
cy.get('input[placeholder="Authentication URL"]').type(config.endpoints.openstack.authUrl)
4040
cy.get('input[placeholder="Project Name"]').type(config.endpoints.openstack.projectName)
41-
cy.get('div[data-test-id="endpointField-dropdown-glance_api_version"]').first().click()
42-
cy.get('div[data-test-id="dropdownListItem"]').contains('2').click()
43-
cy.get('div[data-test-id="endpointField-dropdown-identity_api_version"]').first().click()
44-
cy.get('div[data-test-id="dropdownListItem"]').contains('3').click()
41+
cy.getById('endpointField-dropdown-glance_api_version').first().click()
42+
cy.getById('dropdownListItem').contains('2').click()
43+
cy.getById('endpointField-dropdown-identity_api_version').first().click()
44+
cy.getById('dropdownListItem').contains('3').click()
4545
cy.get('input[placeholder="Project Domain Name"]').type(config.endpoints.openstack.projectDomainName)
4646
cy.get('input[placeholder="User Domain Name"]').type(config.endpoints.openstack.userDomainName)
4747

48+
if (config.endpoints.openstack.allowUntrusted) {
49+
cy.getById('endpointField-switch-allow_untrusted').click()
50+
}
51+
if (config.endpoints.openstack.allowUntrustedSwift) {
52+
cy.getById('endpointField-switch-allow_untrusted_swift').click()
53+
}
54+
4855
cy.server()
4956
cy.route({ url: '**/actions', method: 'POST' }).as('validate')
5057
cy.get('button').contains('Validate and save').click()
5158
cy.wait('@validate')
52-
cy.get('div[data-test-id="endpointStatus"]').should('contain', 'Endpoint is Valid')
59+
cy.getById('endpointStatus').should('contain', 'Endpoint is Valid')
5360
})
5461

5562
it('Added Openstack to endpoint list', () => {
56-
cy.get('a[data-test-id="navigation-item-endpoints"]').click()
57-
cy.get('div[data-test-id="endpointListItem-content-e2e-openstack-test"]').should('contain', 'e2e-openstack-test')
63+
cy.getById('navigation-smallMenuItem-endpoints').click()
64+
cy.getById('endpointListItem-content-e2e-openstack-test').should('contain', 'e2e-openstack-test')
5865
})
5966
})

private/cypress/integration/2 - create endpoints/Create VmWare Endpoint.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ describe('Create VmWare Endpoint', () => {
2727

2828
it('Shows new VmWare endpoint dialog', () => {
2929
cy.get('div').contains('New').click()
30-
cy.get('a').contains('Endpoint').click()
31-
cy.get('div[data-test-id="cProvider-endpointLogo-vmware_vsphere"]').click()
30+
cy.getById('newItemDropdown-listItem-Endpoint').click()
31+
cy.getById('cProvider-endpointLogo-vmware_vsphere').click()
3232
})
3333

3434
it('Fills VmWare connection info', () => {
@@ -41,11 +41,11 @@ describe('Create VmWare Endpoint', () => {
4141
cy.route({ url: '**/actions', method: 'POST' }).as('validate')
4242
cy.get('button').contains('Validate and save').click()
4343
cy.wait('@validate')
44-
cy.get('div[data-test-id="endpointStatus"]').should('contain', 'Endpoint is Valid')
44+
cy.getById('endpointStatus').should('contain', 'Endpoint is Valid')
4545
})
4646

4747
it('Added Endpoint to endpoint list', () => {
48-
cy.get('a[data-test-id="navigation-item-endpoints"]').click()
49-
cy.get('div[data-test-id="endpointListItem-content-e2e-vmware-test"]').should('contain', 'e2e-vmware-test')
48+
cy.getById('navigation-smallMenuItem-endpoints').click()
49+
cy.getById('endpointListItem-content-e2e-vmware-test').should('contain', 'e2e-vmware-test')
5050
})
5151
})

private/cypress/integration/3 - duplicate endpoints/Duplicate Azure Endpoint.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ describe('Duplicate Azure Endpoint', () => {
2424
})
2525

2626
it('Creates duplicate', () => {
27-
cy.get('a[data-test-id="navigation-item-endpoints"]').click()
28-
cy.get('div[data-test-id="endpointListItem-content-e2e-azure-test"]').should('contain', 'e2e-azure-test')
29-
cy.get('div[data-test-id="endpointListItem-checkbox-e2e-azure-test"]').click()
30-
cy.get('div[data-test-id="dropdown-dropdownButton"]').contains('Select an action').click()
31-
cy.get('div[data-test-id="dropdownListItem"]').contains('Duplicate').click()
27+
cy.getById('navigation-smallMenuItem-endpoints').click()
28+
cy.getById('endpointListItem-content-e2e-azure-test').should('contain', 'e2e-azure-test')
29+
cy.getById('endpointListItem-checkbox-e2e-azure-test').click()
30+
cy.getById('dropdown-dropdownButton').contains('Select an action').click()
31+
cy.getById('dropdownListItem').contains('Duplicate').click()
3232
cy.server()
3333
cy.route({ url: '**/endpoints', method: 'POST' }).as('duplicate')
3434
cy.get('button').contains('Duplicate').click()
@@ -39,20 +39,20 @@ describe('Duplicate Azure Endpoint', () => {
3939
cy.get('div[data-test-id="endpointListItem-content-e2e-azure-test (copy)"').click()
4040
cy.server()
4141
cy.route({ url: '**/actions', method: 'POST' }).as('validate')
42-
cy.get('button[data-test-id="edContent-validateButton"]').click()
42+
cy.getById('edContent-validateButton').click()
4343
cy.wait('@validate')
44-
cy.get('div[data-test-id="eValidation-title"]').should('contain', 'Endpoint is Valid')
44+
cy.getById('eValidation-title').should('contain', 'Endpoint is Valid')
4545
cy.get('button').contains('Dismiss').click()
4646
})
4747

4848
it('Deletes duplicated endpoint', () => {
4949
cy.server()
5050
cy.route({ url: '**/replicas/detail', method: 'GET' }).as('replicas')
5151
cy.route({ url: '**/migrations/detail', method: 'GET' }).as('migrations')
52-
cy.get('button[data-test-id="edContent-deleteButton"]').click()
52+
cy.getById('edContent-deleteButton').click()
5353
cy.wait(['@replicas', '@migrations'])
5454
cy.route({ url: '**/secrets/**', method: 'DELETE' }).as('delete')
55-
cy.get('button[data-test-id="aModal-yesButton"]').click()
55+
cy.getById('aModal-yesButton').click()
5656
cy.wait('@delete')
5757
})
5858
})

private/cypress/integration/3 - duplicate endpoints/Duplicate OCI Endpoint.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ describe('Duplicate OCI Endpoint', () => {
2424
})
2525

2626
it('Creates duplicate', () => {
27-
cy.get('a[data-test-id="navigation-item-endpoints"]').click()
28-
cy.get('div[data-test-id="endpointListItem-content-e2e-oci-test"]').should('contain', 'e2e-oci-test')
29-
cy.get('div[data-test-id="endpointListItem-checkbox-e2e-oci-test"]').click()
30-
cy.get('div[data-test-id="dropdown-dropdownButton"]').contains('Select an action').click()
31-
cy.get('div[data-test-id="dropdownListItem"]').contains('Duplicate').click()
27+
cy.getById('navigation-smallMenuItem-endpoints').click()
28+
cy.getById('endpointListItem-content-e2e-oci-test').should('contain', 'e2e-oci-test')
29+
cy.getById('endpointListItem-checkbox-e2e-oci-test').click()
30+
cy.getById('dropdown-dropdownButton').contains('Select an action').click()
31+
cy.getById('dropdownListItem').contains('Duplicate').click()
3232
cy.server()
3333
cy.route({ url: '**/endpoints', method: 'POST' }).as('duplicate')
3434
cy.get('button').contains('Duplicate').click()
@@ -39,20 +39,20 @@ describe('Duplicate OCI Endpoint', () => {
3939
cy.get('div[data-test-id="endpointListItem-content-e2e-oci-test (copy)"').click()
4040
cy.server()
4141
cy.route({ url: '**/actions', method: 'POST' }).as('validate')
42-
cy.get('button[data-test-id="edContent-validateButton"]').click()
42+
cy.getById('edContent-validateButton').click()
4343
cy.wait('@validate')
44-
cy.get('div[data-test-id="eValidation-title"]').should('contain', 'Endpoint is Valid')
44+
cy.getById('eValidation-title').should('contain', 'Endpoint is Valid')
4545
cy.get('button').contains('Dismiss').click()
4646
})
4747

4848
it('Deletes duplicated endpoint', () => {
4949
cy.server()
5050
cy.route({ url: '**/replicas/detail', method: 'GET' }).as('replicas')
5151
cy.route({ url: '**/migrations/detail', method: 'GET' }).as('migrations')
52-
cy.get('button[data-test-id="edContent-deleteButton"]').click()
52+
cy.getById('edContent-deleteButton').click()
5353
cy.wait(['@replicas', '@migrations'])
5454
cy.route({ url: '**/secrets/**', method: 'DELETE' }).as('delete')
55-
cy.get('button[data-test-id="aModal-yesButton"]').click()
55+
cy.getById('aModal-yesButton').click()
5656
cy.wait('@delete')
5757
})
5858
})

0 commit comments

Comments
 (0)