Merge "test: Add zun e2e test"
This commit is contained in:
commit
f191787999
10
.zuul.yaml
10
.zuul.yaml
@ -314,6 +314,7 @@
|
||||
- openstack/devstack
|
||||
- openstack/glance
|
||||
- openstack/heat
|
||||
- openstack/zun
|
||||
- openstack/keystone
|
||||
- openstack/neutron
|
||||
- openstack/nova
|
||||
@ -568,11 +569,14 @@
|
||||
- ^src/pages/management/.*$
|
||||
- ^src/pages/user-center/.*$
|
||||
- ^src/stores/heat/.*$
|
||||
- ^src/stores/zun/.*$
|
||||
- ^src/stores/keystone/.*$
|
||||
- ^src/resources/heat/.*$
|
||||
- ^src/resources/zun/.*$
|
||||
- ^src/resources/keystone/.*$
|
||||
- ^test/e2e/integration/pages/configuration/.*$
|
||||
- ^test/e2e/integration/pages/heat/.*$
|
||||
- ^test/e2e/integration/pages/zun/.*$
|
||||
- ^test/e2e/integration/pages/identity/.*$
|
||||
- ^test/e2e/integration/pages/error.spec.js
|
||||
- ^test/e2e/integration/pages/login.spec.js
|
||||
@ -614,11 +618,14 @@
|
||||
- ^src/pages/management/.*$
|
||||
- ^src/pages/user-center/.*$
|
||||
- ^src/stores/heat/.*$
|
||||
- ^src/stores/zun/.*$
|
||||
- ^src/stores/keystone/.*$
|
||||
- ^src/resources/heat/.*$
|
||||
- ^src/resources/zun/.*$
|
||||
- ^src/resources/keystone/.*$
|
||||
- ^test/e2e/integration/pages/configuration/.*$
|
||||
- ^test/e2e/integration/pages/heat/.*$
|
||||
- ^test/e2e/integration/pages/zun/.*$
|
||||
- ^test/e2e/integration/pages/identity/.*$
|
||||
- ^test/e2e/integration/pages/error.spec.js
|
||||
- ^test/e2e/integration/pages/login.spec.js
|
||||
@ -697,11 +704,14 @@
|
||||
- ^src/pages/management/.*$
|
||||
- ^src/pages/user-center/.*$
|
||||
- ^src/stores/heat/.*$
|
||||
- ^src/stores/zun/.*$
|
||||
- ^src/stores/keystone/.*$
|
||||
- ^src/resources/heat/.*$
|
||||
- ^src/resources/zun/.*$
|
||||
- ^src/resources/keystone/.*$
|
||||
- ^test/e2e/integration/pages/configuration/.*$
|
||||
- ^test/e2e/integration/pages/heat/.*$
|
||||
- ^test/e2e/integration/pages/zun/.*$
|
||||
- ^test/e2e/integration/pages/identity/.*$
|
||||
- ^test/e2e/integration/pages/error.spec.js
|
||||
- ^test/e2e/integration/pages/login.spec.js
|
||||
|
@ -15,6 +15,7 @@
|
||||
cp test/e2e/config/config-other.yaml $config_file
|
||||
sed -i "s#baseUrl.*#baseUrl: https://127.0.0.1:9999#" $config_file
|
||||
sed -i "s/- heat/# - heat/" $config_file
|
||||
sed -i "s/- zun/# - zun/" $config_file
|
||||
sed -i "s#username:.*#username: admin#" $config_file
|
||||
sed -i "s#password:.*#password: secretadmin#" $config_file
|
||||
sed -i "s#usernameAdmin:.*#usernameAdmin: admin#" $config_file
|
||||
|
@ -14,6 +14,7 @@ env:
|
||||
imageCanChangePassword: false
|
||||
extensions:
|
||||
- heat
|
||||
- zun
|
||||
testFiles:
|
||||
- pages/login.spec.js
|
||||
- pages/error.spec.js
|
||||
@ -29,3 +30,6 @@ testFiles:
|
||||
- pages/configuration/setting.spec.js
|
||||
# heat
|
||||
- pages/heat/stack.spec.js
|
||||
# zun
|
||||
- pages/zun/container.spec.js
|
||||
- pages/zun/capsule.spec.js
|
||||
|
@ -21,6 +21,7 @@ env:
|
||||
- heat
|
||||
- ironic
|
||||
- swift
|
||||
- zun
|
||||
testFiles:
|
||||
- pages/login.spec.js
|
||||
- pages/error.spec.js
|
||||
@ -65,3 +66,6 @@ testFiles:
|
||||
- pages/configuration/setting.spec.js
|
||||
# heat
|
||||
- pages/heat/stack.spec.js
|
||||
# zun
|
||||
- pages/zun/container.spec.js
|
||||
- pages/zun/capsule.spec.js
|
||||
|
45
test/e2e/fixtures/zunCapsuleTemplate.yaml
Normal file
45
test/e2e/fixtures/zunCapsuleTemplate.yaml
Normal file
@ -0,0 +1,45 @@
|
||||
kind: capsule
|
||||
spec:
|
||||
restartPolicy: Always
|
||||
initContainers:
|
||||
- workDir: /
|
||||
command:
|
||||
- wget
|
||||
- '-O'
|
||||
- /work-dir/index.html
|
||||
- 'https://www.openstack.org/'
|
||||
env:
|
||||
ENV1: env1-value1
|
||||
image: busybox
|
||||
volumeMounts:
|
||||
- mountPath: /work-dir
|
||||
name: workdir
|
||||
resources:
|
||||
requests:
|
||||
cpu: 0.1
|
||||
memory: 128
|
||||
containers:
|
||||
- workDir: /
|
||||
env:
|
||||
ENV2: env2-value
|
||||
image: nginx
|
||||
volumeMounts:
|
||||
- mountPath: /usr/share/nginx/html
|
||||
name: workdir
|
||||
ports:
|
||||
- protocol: TCP
|
||||
containerPort: 80
|
||||
resources:
|
||||
requests:
|
||||
cpu: 0.5
|
||||
memory: 512
|
||||
volumes:
|
||||
- cinder:
|
||||
size: 1
|
||||
name: workdir
|
||||
metadata:
|
||||
labels:
|
||||
app: web
|
||||
name: e2e-zun-capsule
|
||||
annotations:
|
||||
key1: value1
|
36
test/e2e/integration/pages/zun/capsule.spec.js
Normal file
36
test/e2e/integration/pages/zun/capsule.spec.js
Normal file
@ -0,0 +1,36 @@
|
||||
import { onlyOn } from '@cypress/skip-test';
|
||||
import { zunCapsuleListUrl } from '../../../support/constants';
|
||||
|
||||
const zunServiceEnabled = (Cypress.env('extensions') || []).includes('zun');
|
||||
|
||||
onlyOn(!zunServiceEnabled, () => {
|
||||
describe('Skip The zunCapsule Page', () => {
|
||||
it('successfully skip', () => {});
|
||||
});
|
||||
});
|
||||
|
||||
onlyOn(zunServiceEnabled, () => {
|
||||
describe('The zunCpsule Page', () => {
|
||||
const listUrl = zunCapsuleListUrl;
|
||||
const filename = 'zunCapsuleTemplate.yaml';
|
||||
const zunCapsuleName = 'e2e-zun-capsule';
|
||||
|
||||
beforeEach(() => {
|
||||
cy.login(listUrl);
|
||||
});
|
||||
|
||||
it('successfully create', () => {
|
||||
cy.clickHeaderButton(1)
|
||||
.formAttachFile('template_file', filename)
|
||||
.clickModalActionSubmitButton();
|
||||
});
|
||||
|
||||
it('successfully delete', () => {
|
||||
cy.tableSimpleSearchText(zunCapsuleName)
|
||||
.checkTableFirstRow(zunCapsuleName)
|
||||
.clickFirstActionButton()
|
||||
.clickConfirmActionSubmitButton()
|
||||
.checkEmptyTable();
|
||||
});
|
||||
});
|
||||
});
|
95
test/e2e/integration/pages/zun/container.spec.js
Normal file
95
test/e2e/integration/pages/zun/container.spec.js
Normal file
@ -0,0 +1,95 @@
|
||||
import { onlyOn } from '@cypress/skip-test';
|
||||
import { zunContainerListUrl } from '../../../support/constants';
|
||||
|
||||
const zunServiceEnabled = (Cypress.env('extensions') || []).includes('zun');
|
||||
|
||||
onlyOn(!zunServiceEnabled, () => {
|
||||
describe('Skip The zunContainer Page', () => {
|
||||
it('successfully skip', () => {});
|
||||
});
|
||||
});
|
||||
|
||||
onlyOn(zunServiceEnabled, () => {
|
||||
describe('The zunContainer Page', () => {
|
||||
const listUrl = zunContainerListUrl;
|
||||
const uuid = Cypress._.random(0, 1e6);
|
||||
const zunContainerName = `e2e-zunContainer-${uuid}`;
|
||||
|
||||
beforeEach(() => {
|
||||
cy.login(listUrl);
|
||||
});
|
||||
|
||||
it('successfully create', () => {
|
||||
cy.clickHeaderButton(1)
|
||||
.url()
|
||||
.should('include', `${listUrl}/create`)
|
||||
.wait(5000)
|
||||
.formInput('containerName', zunContainerName)
|
||||
.formInput('image', 'cirros')
|
||||
.clickStepActionNextButton()
|
||||
.wait(2000)
|
||||
.clickStepActionNextButton()
|
||||
.wait(2000)
|
||||
.clickStepActionNextButton()
|
||||
.wait(2000)
|
||||
.clickStepActionNextButton()
|
||||
.wait(2000)
|
||||
.clickStepActionNextButton()
|
||||
.waitFormLoading()
|
||||
.url()
|
||||
.should('include', listUrl)
|
||||
.closeNotice()
|
||||
.waitStatusTextByFresh('Created');
|
||||
});
|
||||
|
||||
it('successfully start', () => {
|
||||
cy.tableSimpleSearchText(zunContainerName)
|
||||
.checkTableFirstRow(zunContainerName)
|
||||
.clickActionInMore('Start')
|
||||
.clickConfirmActionSubmitButton()
|
||||
.waitStatusTextByFresh('Running');
|
||||
});
|
||||
|
||||
it('successfully pause', () => {
|
||||
cy.tableSimpleSearchText(zunContainerName)
|
||||
.checkTableFirstRow(zunContainerName)
|
||||
.clickActionInMore('Pause')
|
||||
.clickConfirmActionSubmitButton()
|
||||
.waitStatusTextByFresh('Paused');
|
||||
});
|
||||
|
||||
it('successfully unpause', () => {
|
||||
cy.tableSimpleSearchText(zunContainerName)
|
||||
.checkTableFirstRow(zunContainerName)
|
||||
.clickActionButtonByTitle('Unpause')
|
||||
.clickConfirmActionSubmitButton()
|
||||
.waitStatusTextByFresh('Running');
|
||||
});
|
||||
|
||||
it('successfully reboot', () => {
|
||||
cy.tableSimpleSearchText(zunContainerName)
|
||||
.checkTableFirstRow(zunContainerName)
|
||||
.clickActionInMore('Reboot')
|
||||
.clickConfirmActionSubmitButton()
|
||||
.waitStatusTextByFresh('Restarting')
|
||||
.wait(5000)
|
||||
.waitStatusTextByFresh('Running');
|
||||
});
|
||||
|
||||
it('successfully stop', () => {
|
||||
cy.tableSimpleSearchText(zunContainerName)
|
||||
.checkTableFirstRow(zunContainerName)
|
||||
.clickActionInMore('Stop')
|
||||
.clickConfirmActionSubmitButton()
|
||||
.waitStatusTextByFresh('Stopped');
|
||||
});
|
||||
|
||||
it('successfully delete', () => {
|
||||
cy.tableSimpleSearchText(zunContainerName)
|
||||
.checkTableFirstRow(zunContainerName)
|
||||
.clickFirstActionButton()
|
||||
.clickConfirmActionSubmitButton()
|
||||
.checkEmptyTable();
|
||||
});
|
||||
});
|
||||
});
|
@ -61,6 +61,10 @@ export const settingUrl = '/configuration-admin/setting';
|
||||
// stack
|
||||
export const stackListUrl = '/heat/stack';
|
||||
|
||||
// zun
|
||||
export const zunContainerListUrl = '/container/containers';
|
||||
export const zunCapsuleListUrl = '/container/capsules';
|
||||
|
||||
export default {
|
||||
// compute
|
||||
instance: instanceListUrl,
|
||||
|
Loading…
Reference in New Issue
Block a user