This is an automated email from the ASF dual-hosted git repository.
membphis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-dashboard.git
The following commit(s) were added to refs/heads/master by this push:
new 85efb37 test: add the create and delete plugin in drawer (#1597)
85efb37 is described below
commit 85efb37b0c5fe76c94a85f9fc0dc13312083181d
Author: Cliff Su <[email protected]>
AuthorDate: Mon Mar 22 20:45:40 2021 +0800
test: add the create and delete plugin in drawer (#1597)
Fix #1411
---
web/cypress/fixtures/data.json | 1 +
web/cypress/fixtures/selector.json | 3 ++
.../plugin/create-delete-in-drawer-plugin.spec.js | 55 ++++++++++++++++++++++
.../route/create-edit-delete-route.spec.js | 33 ++++++++++---
.../service/create-edit-delete-service.spec.js | 29 ++++++++++++
5 files changed, 115 insertions(+), 6 deletions(-)
diff --git a/web/cypress/fixtures/data.json b/web/cypress/fixtures/data.json
index 94be061..7f7b0fb 100644
--- a/web/cypress/fixtures/data.json
+++ b/web/cypress/fixtures/data.json
@@ -14,6 +14,7 @@
"serviceName2": "test_service2",
"routeName": "test_route",
"consumerName": "test_consumer",
+ "basicAuthPlugin": "basic-auth",
"ip1": "127.0.0.1",
"ip2": "127.0.0.2",
"host1": "11.11.11.11",
diff --git a/web/cypress/fixtures/selector.json
b/web/cypress/fixtures/selector.json
index 0e1c8d3..71d4b58 100644
--- a/web/cypress/fixtures/selector.json
+++ b/web/cypress/fixtures/selector.json
@@ -11,6 +11,7 @@
"errorNotification:": ".ant-notification-notice-error",
"pluginCard": ".ant-card",
+ "pluginCardBordered": ".ant-card-bordered",
"pageContent": ".ant-pro-page-container",
"tableBody":".ant-table-tbody",
@@ -19,6 +20,7 @@
"refresh": ".anticon-reload",
"codemirror": ".CodeMirror",
"disabledSwitcher": "#disable",
+ "checkedSwitcher": ".ant-switch-checked",
"deleteButton": ".ant-btn-dangerous",
"name": "#name",
@@ -66,6 +68,7 @@
"usernameInput": "#control-ref_username",
"passwordInput": "#control-ref_password",
"drawer": ".ant-drawer-content",
+ "drawerFooter": ".ant-drawer-footer",
"codemirrorScroll": ".CodeMirror-scroll",
"drawerClose": ".ant-drawer-close",
"descriptionSelector": "[title=Description]",
diff --git
a/web/cypress/integration/plugin/create-delete-in-drawer-plugin.spec.js
b/web/cypress/integration/plugin/create-delete-in-drawer-plugin.spec.js
new file mode 100644
index 0000000..dfc70ef
--- /dev/null
+++ b/web/cypress/integration/plugin/create-delete-in-drawer-plugin.spec.js
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/* eslint-disable no-undef */
+
+context('Delete Plugin List with the Drawer', () => {
+ const timeout = 5000;
+
+ beforeEach(() => {
+ cy.login();
+
+ cy.fixture('selector.json').as('domSelector');
+ cy.fixture('data.json').as('data');
+ });
+
+ it('should visit plugin market and create plugin', function () {
+ cy.visit('/');
+ cy.contains('Plugin').click();
+ cy.contains('Create').click();
+
+
cy.contains(this.data.basicAuthPlugin).parents(this.domSelector.pluginCardBordered).within(()
=> {
+ cy.get('button').click({ force: true });
+ });
+
+ cy.get(this.domSelector.drawer).should('be.visible').within(() => {
+ cy.get(this.domSelector.disabledSwitcher).click();
+ cy.get(this.domSelector.checkedSwitcher).should('exist');
+ });
+
+ cy.contains('button', 'Submit').click();
+ cy.get(this.domSelector.drawer, { timeout }).should('not.exist');
+ });
+
+ it('should delete the plugin with the drawer', function () {
+ cy.visit('/plugin/list');
+ cy.get(this.domSelector.refresh).click();
+ cy.contains('button', 'Edit').click();
+ cy.get(this.domSelector.drawerFooter).contains('button', 'Delete').click({
force: true });
+ cy.contains('button', 'Confirm').click({ force: true });
+ cy.get(this.domSelector.empty).should('be.visible');
+ });
+});
diff --git a/web/cypress/integration/route/create-edit-delete-route.spec.js
b/web/cypress/integration/route/create-edit-delete-route.spec.js
index 86d9fb2..d0f4e83 100644
--- a/web/cypress/integration/route/create-edit-delete-route.spec.js
+++ b/web/cypress/integration/route/create-edit-delete-route.spec.js
@@ -20,6 +20,7 @@ context('Create and Delete Route', () => {
const name = `routeName${new Date().valueOf()}`;
const newName = `newName${new Date().valueOf()}`;
const sleepTime = 100;
+ const timeout = 5000;
beforeEach(() => {
cy.login();
@@ -71,13 +72,33 @@ context('Create and Delete Route', () => {
});
});
- // config prometheus plugin
- cy.contains(this.domSelector.pluginCard, 'prometheus').within(() => {
- cy.get('button').first().click({
- force: true
- });
+ // config basic auth plugin
+
cy.contains(this.data.basicAuthPlugin).parents(this.domSelector.pluginCardBordered).within(()
=> {
+ cy.get('button').click({ force: true });
+ });
+
+ cy.get(this.domSelector.drawer).should('be.visible').within(() => {
+ cy.get(this.domSelector.disabledSwitcher).click();
+ cy.get(this.domSelector.checkedSwitcher).should('exist');
+ });
+
+ cy.contains('button', 'Submit').click();
+ cy.get(this.domSelector.drawer, { timeout }).should('not.exist');
+
+
cy.contains(this.data.basicAuthPlugin).parents(this.domSelector.pluginCardBordered).within(()
=> {
+ cy.get('button').click({ force: true });
});
- cy.contains('button', 'Cancel').click();
+
+ cy.get(this.domSelector.drawerFooter).contains('button', 'Delete').click({
force: true });
+ cy.contains('button', 'Confirm').click({ force: true });
+
+
cy.contains(this.data.basicAuthPlugin).parents(this.domSelector.pluginCardBordered).within(()
=> {
+ cy.get('button').click({ force: true });
+ });
+
+ cy.get(this.domSelector.drawerFooter).contains('button',
'Delete').should('not.exist');
+ cy.contains('button', 'Cancel').click({ force: true });
+
cy.contains('Next').click();
cy.contains('Submit').click();
cy.contains(this.data.submitSuccess);
diff --git a/web/cypress/integration/service/create-edit-delete-service.spec.js
b/web/cypress/integration/service/create-edit-delete-service.spec.js
index 83f5641..70ba29a 100644
--- a/web/cypress/integration/service/create-edit-delete-service.spec.js
+++ b/web/cypress/integration/service/create-edit-delete-service.spec.js
@@ -17,6 +17,8 @@
/* eslint-disable no-undef */
context('Create and Delete Service ', () => {
+ const timeout = 5000;
+
beforeEach(() => {
cy.login();
@@ -35,6 +37,33 @@ context('Create and Delete Service ', () => {
cy.get(this.domSelector.nodes_0_host).type(this.data.ip1);
cy.contains('Next').click();
+
+
cy.contains(this.data.basicAuthPlugin).parents(this.domSelector.pluginCardBordered).within(()
=> {
+ cy.get('button').click({ force: true });
+ });
+
+ cy.get(this.domSelector.drawer).should('be.visible').within(() => {
+ cy.get(this.domSelector.disabledSwitcher).click();
+ cy.get(this.domSelector.checkedSwitcher).should('exist');
+ });
+
+ cy.contains('button', 'Submit').click();
+ cy.get(this.domSelector.drawer, { timeout }).should('not.exist');
+
+
cy.contains(this.data.basicAuthPlugin).parents(this.domSelector.pluginCardBordered).within(()
=> {
+ cy.get('button').click({ force: true });
+ });
+
+ cy.get(this.domSelector.drawerFooter).contains('button', 'Delete').click({
force: true });
+ cy.contains('button', 'Confirm').click({ force: true });
+
+
cy.contains(this.data.basicAuthPlugin).parents(this.domSelector.pluginCardBordered).within(()
=> {
+ cy.get('button').click({ force: true });
+ });
+
+ cy.get(this.domSelector.drawerFooter).contains('button',
'Delete').should('not.exist');
+ cy.contains('button', 'Cancel').click({ force: true });
+
cy.contains('Next').click();
cy.contains('Submit').click();
cy.get(this.domSelector.notification).should('contain',
this.data.createServiceSuccess);