diff --git a/docs/en/test/3-1-E2E-form-operation.md b/docs/en/test/3-1-E2E-form-operation.md
index 6e19983b..2fd4243b 100644
--- a/docs/en/test/3-1-E2E-form-operation.md
+++ b/docs/en/test/3-1-E2E-form-operation.md
@@ -48,11 +48,11 @@ Because of the consistency of the front-end framework, when we write related use
.wait(10000);
cy.tableSearchText(name)
.selectFirst()
- .clickHeaderButtonByTitle('Start')
+ .clickHeaderActionButtonByTitle('Start')
.checkDisableAction(2000)
- .clickHeaderButtonByTitle('Stop')
+ .clickHeaderActionButtonByTitle('Stop')
.checkDisableAction(2000)
- .clickHeaderButtonByTitle('Reboot')
+ .clickHeaderActionButtonByTitle('Reboot')
.checkDisableAction(2000);
});
```
@@ -66,7 +66,7 @@ Because of the consistency of the front-end framework, when we write related use
```javascript
it('successfully create', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.url()
.should('include', `${listUrl}/create`)
.wait(5000)
@@ -149,7 +149,7 @@ Looking at the structure and style of the elements through the page, I found tha
const volumeJson = {
name: volumeName,
};
- cy.clickHeaderButton(1, 2000)
+ cy.clickHeaderActionButton(0, 2000)
.formAttachFile('content', contentFile)
.formAttachFile('params', paramFile)
.clickStepActionNextButton()
@@ -280,14 +280,14 @@ Looking at the structure and style of the elements through the page, I found tha
```javascript
it('successfully create full backup', () => {
- cy.clickHeaderButton(1, 5000)
+ cy.clickHeaderActionButton(0, 5000)
.formInput('name', name)
.formTableSelectBySearch('volume', volumeName)
.clickModalActionSubmitButton()
.wait(5000)
.waitTableLoading();
- cy.clickHeaderButton(1, 5000)
+ cy.clickHeaderActionButton(0, 5000)
.formInput('name', nameIns)
.formTableSelectBySearchOption('volume', 'Status', 'In-use')
.clickModalActionSubmitButton();
@@ -306,7 +306,7 @@ Looking at the structure and style of the elements through the page, I found tha
```javascript
it('successfully create', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.formInput('name', name)
.formSelect('policy')
.clickModalActionSubmitButton();
@@ -336,7 +336,7 @@ Looking at the structure and style of the elements through the page, I found tha
```javascript
it('successfully create by file', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.formRadioChoose('type', 1)
.formInput('name', nameByFile)
.formAttachFile('public_key', filename)
@@ -356,7 +356,7 @@ Looking at the structure and style of the elements through the page, I found tha
```javascript
it('successfully create by file', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.formRadioChoose('type', 1)
.formInput('name', nameByFile)
.formAttachFile('public_key', filename)
@@ -372,7 +372,7 @@ Looking at the structure and style of the elements through the page, I found tha
```javascript
it('successfully create', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.url()
.should('include', `${listUrl}/create`)
.formInput('name', name)
@@ -420,7 +420,7 @@ Looking at the structure and style of the elements through the page, I found tha
```javascript
it('successfully create', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.wait(2000)
.formInput('name', name)
.formText('description', name)
diff --git a/docs/en/test/3-2-E2E-table-operation.md b/docs/en/test/3-2-E2E-table-operation.md
index 85fbdc8c..27083c96 100644
--- a/docs/en/test/3-2-E2E-table-operation.md
+++ b/docs/en/test/3-2-E2E-table-operation.md
@@ -126,7 +126,7 @@ Mainly include: waiting for the list to load
const volumeJson = {
name: volumeName,
};
- cy.clickHeaderButton(1, 2000)
+ cy.clickHeaderActionButton(0, 2000)
.formAttachFile('content', contentFile)
.formAttachFile('params', paramFile)
.clickStepActionNextButton()
@@ -210,7 +210,7 @@ Mainly include: waiting for the list to load
.tableSearchText(name)
.checkColumnValue(6, 'Shutoff')
.selectFirst()
- .clickHeaderButtonByTitle('Stop')
+ .clickHeaderActionButtonByTitle('Stop')
.checkDisableAction(2000);
});
```
@@ -237,7 +237,7 @@ Mainly include: waiting for the list to load
.tableSearchText(name)
.checkColumnValue(6, 'Shutoff')
.selectFirst()
- .clickHeaderButtonByTitle('Stop')
+ .clickHeaderActionButtonByTitle('Stop')
.checkDisableAction(2000);
});
```
@@ -260,7 +260,7 @@ Mainly include: waiting for the list to load
const volumeJson = {
name: volumeName,
};
- cy.clickHeaderButton(1, 2000)
+ cy.clickHeaderActionButton(0, 2000)
.formAttachFile('content', contentFile)
.formAttachFile('params', paramFile)
.clickStepActionNextButton()
@@ -290,7 +290,7 @@ Mainly contains
The buttons above the table generally include: refresh, create, batch operation button, configure table list items, download
-- `clickHeaderButton`
+- `clickHeaderActionButton`
- Click the button above the table,
- Parameter `buttonIndex`, the subscript of the button above the table
@@ -300,7 +300,7 @@ The buttons above the table generally include: refresh, create, batch operation
```javascript
it('successfully create', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.formInput('name', name)
.clickModalActionSubmitButton()
.wait(5000);
@@ -309,7 +309,7 @@ The buttons above the table generally include: refresh, create, batch operation

-- `clickHeaderButtonByTitle`
+- `clickHeaderActionButtonByTitle`
- Click the button above the table by name, generally used for batch operation button clicks
@@ -326,7 +326,7 @@ The buttons above the table generally include: refresh, create, batch operation
.tableSearchText(name)
.checkColumnValue(6, 'Shutoff')
.selectFirst()
- .clickHeaderButtonByTitle('Stop')
+ .clickHeaderActionButtonByTitle('Stop')
.checkDisableAction(2000);
});
```
@@ -573,11 +573,11 @@ The buttons above the table generally include: refresh, create, batch operation
.wait(10000);
cy.tableSearchText(name)
.selectFirst()
- .clickHeaderButtonByTitle('Start')
+ .clickHeaderActionButtonByTitle('Start')
.checkDisableAction(2000)
- .clickHeaderButtonByTitle('Stop')
+ .clickHeaderActionButtonByTitle('Stop')
.checkDisableAction(2000)
- .clickHeaderButtonByTitle('Reboot')
+ .clickHeaderActionButtonByTitle('Reboot')
.checkDisableAction(2000);
});
```
diff --git a/docs/zh/test/3-1-E2E-form-operation.md b/docs/zh/test/3-1-E2E-form-operation.md
index d074bc94..291890e0 100644
--- a/docs/zh/test/3-1-E2E-form-operation.md
+++ b/docs/zh/test/3-1-E2E-form-operation.md
@@ -48,11 +48,11 @@
.wait(10000);
cy.tableSearchText(name)
.selectFirst()
- .clickHeaderButtonByTitle('Start')
+ .clickHeaderActionButtonByTitle('Start')
.checkDisableAction(2000)
- .clickHeaderButtonByTitle('Stop')
+ .clickHeaderActionButtonByTitle('Stop')
.checkDisableAction(2000)
- .clickHeaderButtonByTitle('Reboot')
+ .clickHeaderActionButtonByTitle('Reboot')
.checkDisableAction(2000);
});
```
@@ -66,7 +66,7 @@
```javascript
it('successfully create', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.url()
.should('include', `${listUrl}/create`)
.wait(5000)
@@ -149,7 +149,7 @@
const volumeJson = {
name: volumeName,
};
- cy.clickHeaderButton(1, 2000)
+ cy.clickHeaderActionButton(0, 2000)
.formAttachFile('content', contentFile)
.formAttachFile('params', paramFile)
.clickStepActionNextButton()
@@ -280,14 +280,14 @@
```javascript
it('successfully create full backup', () => {
- cy.clickHeaderButton(1, 5000)
+ cy.clickHeaderActionButton(0, 5000)
.formInput('name', name)
.formTableSelectBySearch('volume', volumeName)
.clickModalActionSubmitButton()
.wait(5000)
.waitTableLoading();
- cy.clickHeaderButton(1, 5000)
+ cy.clickHeaderActionButton(0, 5000)
.formInput('name', nameIns)
.formTableSelectBySearchOption('volume', 'Status', 'In-use')
.clickModalActionSubmitButton();
@@ -306,7 +306,7 @@
```javascript
it('successfully create', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.formInput('name', name)
.formSelect('policy')
.clickModalActionSubmitButton();
@@ -336,7 +336,7 @@
```javascript
it('successfully create by file', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.formRadioChoose('type', 1)
.formInput('name', nameByFile)
.formAttachFile('public_key', filename)
@@ -356,7 +356,7 @@
```javascript
it('successfully create by file', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.formRadioChoose('type', 1)
.formInput('name', nameByFile)
.formAttachFile('public_key', filename)
@@ -372,7 +372,7 @@
```javascript
it('successfully create', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.url()
.should('include', `${listUrl}/create`)
.formInput('name', name)
@@ -420,7 +420,7 @@
```javascript
it('successfully create', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.wait(2000)
.formInput('name', name)
.formText('description', name)
diff --git a/docs/zh/test/3-2-E2E-table-operation.md b/docs/zh/test/3-2-E2E-table-operation.md
index 34cd20a2..f99cebe9 100644
--- a/docs/zh/test/3-2-E2E-table-operation.md
+++ b/docs/zh/test/3-2-E2E-table-operation.md
@@ -117,7 +117,7 @@
const volumeJson = {
name: volumeName,
};
- cy.clickHeaderButton(1, 2000)
+ cy.clickHeaderActionButton(0, 2000)
.formAttachFile('content', contentFile)
.formAttachFile('params', paramFile)
.clickStepActionNextButton()
@@ -197,7 +197,7 @@
.tableSearchText(name)
.checkColumnValue(6, 'Shutoff')
.selectFirst()
- .clickHeaderButtonByTitle('Stop')
+ .clickHeaderActionButtonByTitle('Stop')
.checkDisableAction(2000);
});
```
@@ -222,7 +222,7 @@
.tableSearchText(name)
.checkColumnValue(6, 'Shutoff')
.selectFirst()
- .clickHeaderButtonByTitle('Stop')
+ .clickHeaderActionButtonByTitle('Stop')
.checkDisableAction(2000);
});
```
@@ -243,7 +243,7 @@
const volumeJson = {
name: volumeName,
};
- cy.clickHeaderButton(1, 2000)
+ cy.clickHeaderActionButton(0, 2000)
.formAttachFile('content', contentFile)
.formAttachFile('params', paramFile)
.clickStepActionNextButton()
@@ -270,7 +270,7 @@
### 表单上方按钮的操作
表格上方的按钮一般包含:刷新、创建、批量操作按钮、配置表格列表项、下载
-- `clickHeaderButton`
+- `clickHeaderActionButton`
- 点击表格上方的按钮,
- 参数`buttonIndex`,表格上方按钮的下标
- 参数`waitTime`,点击后的等待时间,默认为 2 秒
@@ -279,7 +279,7 @@
```javascript
it('successfully create', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.formInput('name', name)
.clickModalActionSubmitButton()
.wait(5000);
@@ -288,7 +288,7 @@

-- `clickHeaderButtonByTitle`
+- `clickHeaderActionButtonByTitle`
- 通过名称点击表格上方的按钮,一般用于批量操作按钮的点击
- 参数`title`,表格上方按钮上的文字
- 参数`waitTime`,点击后的等待时间,默认为 2 秒
@@ -303,7 +303,7 @@
.tableSearchText(name)
.checkColumnValue(6, 'Shutoff')
.selectFirst()
- .clickHeaderButtonByTitle('Stop')
+ .clickHeaderActionButtonByTitle('Stop')
.checkDisableAction(2000);
});
```
@@ -532,11 +532,11 @@
.wait(10000);
cy.tableSearchText(name)
.selectFirst()
- .clickHeaderButtonByTitle('Start')
+ .clickHeaderActionButtonByTitle('Start')
.checkDisableAction(2000)
- .clickHeaderButtonByTitle('Stop')
+ .clickHeaderActionButtonByTitle('Stop')
.checkDisableAction(2000)
- .clickHeaderButtonByTitle('Reboot')
+ .clickHeaderActionButtonByTitle('Reboot')
.checkDisableAction(2000);
});
```
diff --git a/releasenotes/notes/Update-Table-Header-e279ab2ff792cbb6.yaml b/releasenotes/notes/Update-Table-Header-e279ab2ff792cbb6.yaml
new file mode 100644
index 00000000..c7dae721
--- /dev/null
+++ b/releasenotes/notes/Update-Table-Header-e279ab2ff792cbb6.yaml
@@ -0,0 +1,8 @@
+---
+features:
+ - |
+ Update table header:
+
+ * Move all common table buttons to the right top of the table, such as refresh button, download button, custom button, auto-refresh button.
+
+ * Move the quick search of the MagicInput component from the behind the search input to the front.
diff --git a/src/components/MagicInput/index.jsx b/src/components/MagicInput/index.jsx
index 65d6a173..90803c47 100644
--- a/src/components/MagicInput/index.jsx
+++ b/src/components/MagicInput/index.jsx
@@ -560,6 +560,7 @@ class MagicInput extends PureComponent {
'magic-input-outer-wrapper'
)}
>
+ {this.renderChecks()}
{this.renderClose()}
- {this.renderChecks()}
);
}
diff --git a/src/components/MagicInput/index.less b/src/components/MagicInput/index.less
index 95ced803..f1e5e0d4 100644
--- a/src/components/MagicInput/index.less
+++ b/src/components/MagicInput/index.less
@@ -166,7 +166,12 @@
}
.magic-input-checks {
- min-width: 158px;
margin-left: 8px;
line-height: 32px;
+
+ :global {
+ .ant-checkbox + span {
+ text-wrap: nowrap;
+ }
+ }
}
diff --git a/src/components/Tables/Base/index.jsx b/src/components/Tables/Base/index.jsx
index f92da191..a63f7a26 100644
--- a/src/components/Tables/Base/index.jsx
+++ b/src/components/Tables/Base/index.jsx
@@ -788,20 +788,29 @@ export class BaseTable extends React.Component {
);
}
diff --git a/src/components/Tables/Base/index.less b/src/components/Tables/Base/index.less
index 68bac0a1..b2e7594d 100644
--- a/src/components/Tables/Base/index.less
+++ b/src/components/Tables/Base/index.less
@@ -66,7 +66,8 @@
justify-content: space-between;
}
-.table-header-btns {
+.table-header-btns,
+.table-header-action-btns {
position: relative;
display: inline-block;
margin-bottom: calc(@body-padding - 4px);
@@ -84,7 +85,6 @@
}
.search-row {
- float: right;
min-width: 350px;
}
@@ -92,3 +92,23 @@
width: 288px;
height: 32px;
}
+
+// .table-header-action-btns {
+// flex-grow: 0;
+// flex-shrink: 0;
+// }
+
+.table-header-right {
+ display: flex;
+}
+
+.table-header-btns {
+ margin-right: 0;
+ margin-left: 10px;
+
+ :global {
+ button:last-child {
+ margin-right: 0;
+ }
+ }
+}
diff --git a/test/e2e/integration/pages/compute/aggregate.spec.js b/test/e2e/integration/pages/compute/aggregate.spec.js
index e4ba0a3c..aed89e19 100644
--- a/test/e2e/integration/pages/compute/aggregate.spec.js
+++ b/test/e2e/integration/pages/compute/aggregate.spec.js
@@ -26,7 +26,7 @@ describe('The Aggregate Page', () => {
});
it('successfully create aggregate', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.formInput('name', name)
.clickModalActionSubmitButton();
});
diff --git a/test/e2e/integration/pages/compute/baremetal.spec.js b/test/e2e/integration/pages/compute/baremetal.spec.js
index fa324ce0..6fde1c01 100644
--- a/test/e2e/integration/pages/compute/baremetal.spec.js
+++ b/test/e2e/integration/pages/compute/baremetal.spec.js
@@ -58,7 +58,7 @@ describe('The Bare Metal Page', () => {
});
it('successfully create', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.wait(2000)
.formInput('name', name)
.formSelect('driver')
diff --git a/test/e2e/integration/pages/compute/flavor.spec.js b/test/e2e/integration/pages/compute/flavor.spec.js
index f5816266..07cdf056 100644
--- a/test/e2e/integration/pages/compute/flavor.spec.js
+++ b/test/e2e/integration/pages/compute/flavor.spec.js
@@ -31,7 +31,7 @@ describe('The Flavor Page', () => {
});
it('successfully create', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.wait(2000)
.formRadioChoose('architecture', 1)
.formRadioChoose('category', 0)
diff --git a/test/e2e/integration/pages/compute/image.spec.js b/test/e2e/integration/pages/compute/image.spec.js
index ad13e3ba..3c1df535 100644
--- a/test/e2e/integration/pages/compute/image.spec.js
+++ b/test/e2e/integration/pages/compute/image.spec.js
@@ -52,7 +52,7 @@ describe('The Image Page', () => {
});
it('successfully create', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.url()
.should('include', `${listUrl}/create`)
.formInput('name', name)
@@ -74,7 +74,7 @@ describe('The Image Page', () => {
it('successfully create shared image by admin', () => {
cy.loginAdmin(imageListUrlAdmin)
.wait(2000)
- .clickHeaderButton(1)
+ .clickHeaderActionButton(0)
.wait(5000)
.formInput('name', sharedImage)
.formTableSelectBySearch('owner', projectName)
diff --git a/test/e2e/integration/pages/compute/instance.spec.js b/test/e2e/integration/pages/compute/instance.spec.js
index 4f2ae2b7..669068a1 100644
--- a/test/e2e/integration/pages/compute/instance.spec.js
+++ b/test/e2e/integration/pages/compute/instance.spec.js
@@ -39,7 +39,7 @@ describe('The Instance Page', () => {
});
it('successfully create', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.url()
.should('include', `${listUrl}/create`)
.wait(5000)
@@ -87,11 +87,11 @@ describe('The Instance Page', () => {
.wait(10000);
cy.tableSearchText(name)
.selectFirst()
- .clickHeaderButtonByTitle('Start')
+ .clickHeaderActionButtonByTitle('Start')
.checkDisableAction(2000)
- .clickHeaderButtonByTitle('Stop')
+ .clickHeaderActionButtonByTitle('Stop')
.checkDisableAction(2000)
- .clickHeaderButtonByTitle('Reboot')
+ .clickHeaderActionButtonByTitle('Reboot')
.checkDisableAction(2000);
});
@@ -114,7 +114,7 @@ describe('The Instance Page', () => {
.waitStatusActive()
.checkColumnValue(6, 'Active')
.selectFirst()
- .clickHeaderButtonByTitle('Start')
+ .clickHeaderActionButtonByTitle('Start')
.checkDisableAction(2000);
});
diff --git a/test/e2e/integration/pages/compute/ironic.spec.js b/test/e2e/integration/pages/compute/ironic.spec.js
index 6b16ad2e..fcdb63d8 100644
--- a/test/e2e/integration/pages/compute/ironic.spec.js
+++ b/test/e2e/integration/pages/compute/ironic.spec.js
@@ -53,7 +53,7 @@ onlyOn(ironicServiceEnabled, () => {
});
it('successfully create', () => {
- cy.clickHeaderButton(2)
+ cy.clickHeaderActionButton(2)
.wait(5000)
.formTableSelect('flavor')
.formRadioChooseByLabel('image', imageType)
@@ -107,7 +107,7 @@ onlyOn(ironicServiceEnabled, () => {
.tableSearchText(name)
.checkColumnValue(6, 'Shutoff')
.selectFirst()
- .clickHeaderButtonByTitle('Stop')
+ .clickHeaderActionButtonByTitle('Stop')
.checkDisableAction(2000);
});
@@ -117,7 +117,7 @@ onlyOn(ironicServiceEnabled, () => {
.waitStatusActive()
.checkColumnValue(6, 'Active')
.selectFirst()
- .clickHeaderButtonByTitle('Start')
+ .clickHeaderActionButtonByTitle('Start')
.checkDisableAction(2000);
});
diff --git a/test/e2e/integration/pages/compute/keypair.spec.js b/test/e2e/integration/pages/compute/keypair.spec.js
index 81563f57..f7fbaec3 100644
--- a/test/e2e/integration/pages/compute/keypair.spec.js
+++ b/test/e2e/integration/pages/compute/keypair.spec.js
@@ -26,14 +26,14 @@ describe('The Keypair Page', () => {
});
it('successfully create', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.formInput('name', name)
.clickModalActionSubmitButton()
.wait(5000);
});
it('successfully create by file', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.formRadioChoose('type', 1)
.formInput('name', nameByFile)
.formAttachFile('public_key', filename)
diff --git a/test/e2e/integration/pages/compute/server-group.spec.js b/test/e2e/integration/pages/compute/server-group.spec.js
index b092a294..045bfb4f 100644
--- a/test/e2e/integration/pages/compute/server-group.spec.js
+++ b/test/e2e/integration/pages/compute/server-group.spec.js
@@ -32,7 +32,7 @@ describe('The Server Group Page', () => {
});
it('successfully create', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.formInput('name', name)
.formSelect('policy')
.clickModalActionSubmitButton();
@@ -50,7 +50,7 @@ describe('The Server Group Page', () => {
const password = 'passW0rd_1';
cy.tableSearchText(name)
.goToDetail()
- .clickHeaderButton(1)
+ .clickHeaderActionButton(0)
.formTableSelect('flavor')
.formRadioChooseByLabel('image', imageType)
.formTableSelectBySearch('image', imageName)
diff --git a/test/e2e/integration/pages/configuration/metadata.spec.js b/test/e2e/integration/pages/configuration/metadata.spec.js
index b8028254..161e859d 100644
--- a/test/e2e/integration/pages/configuration/metadata.spec.js
+++ b/test/e2e/integration/pages/configuration/metadata.spec.js
@@ -24,7 +24,7 @@ describe('The Metadata Page', () => {
});
it('successfully create', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.formAttachFile('metadata', filename)
.clickModalActionSubmitButton();
});
diff --git a/test/e2e/integration/pages/configuration/system.spec.js b/test/e2e/integration/pages/configuration/system.spec.js
index bb9d78ab..111aec5a 100644
--- a/test/e2e/integration/pages/configuration/system.spec.js
+++ b/test/e2e/integration/pages/configuration/system.spec.js
@@ -119,7 +119,7 @@ describe('The System Info Page', () => {
// .tableSearchText('l3')
// .goToDetail(0)
// .clickDetailTab('Router')
- // .clickHeaderButton(1)
+ // .clickHeaderActionButton(0)
// .wait(10000)
// .formTableSelectBySearch('router', routerName)
// .clickModalActionSubmitButton();
@@ -147,7 +147,7 @@ describe('The System Info Page', () => {
.tableSearchText('dhcp')
.goToDetail(0)
.clickDetailTab('Networks')
- .clickHeaderButton(1)
+ .clickHeaderActionButton(0)
.wait(5000)
.formTableSelectBySearch('network', networkName)
.clickModalActionSubmitButton();
diff --git a/test/e2e/integration/pages/heat/stack.spec.js b/test/e2e/integration/pages/heat/stack.spec.js
index 0194eb4f..631c3b99 100644
--- a/test/e2e/integration/pages/heat/stack.spec.js
+++ b/test/e2e/integration/pages/heat/stack.spec.js
@@ -43,7 +43,7 @@ onlyOn(heatServiceEnabled, () => {
const volumeJson = {
name: volumeName,
};
- cy.clickHeaderButton(1, 2000)
+ cy.clickHeaderActionButton(0, 2000)
.formAttachFile('content', contentFile)
.formAttachFile('params', paramFile)
.clickStepActionNextButton()
@@ -105,7 +105,7 @@ onlyOn(heatServiceEnabled, () => {
const volumeJson = {
name: volumeNameAbandon,
};
- cy.clickHeaderButton(1, 2000)
+ cy.clickHeaderActionButton(0, 2000)
.formAttachFile('content', contentFile)
.formAttachFile('params', paramFile)
.clickStepActionNextButton()
diff --git a/test/e2e/integration/pages/identity/project.spec.js b/test/e2e/integration/pages/identity/project.spec.js
index 03edb4b9..9bc5d6ae 100644
--- a/test/e2e/integration/pages/identity/project.spec.js
+++ b/test/e2e/integration/pages/identity/project.spec.js
@@ -32,7 +32,7 @@ describe('The Project Page', () => {
});
it('successfully create', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.formInput('name', name)
.clickModalActionSubmitButton()
.waitTableLoading();
diff --git a/test/e2e/integration/pages/identity/user-group.spec.js b/test/e2e/integration/pages/identity/user-group.spec.js
index fbbd6bfc..1234d939 100644
--- a/test/e2e/integration/pages/identity/user-group.spec.js
+++ b/test/e2e/integration/pages/identity/user-group.spec.js
@@ -30,7 +30,7 @@ describe('The User Group Page', () => {
});
it('successfully create', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.formInput('name', name)
.clickModalActionSubmitButton();
});
diff --git a/test/e2e/integration/pages/identity/user.spec.js b/test/e2e/integration/pages/identity/user.spec.js
index 2a349dcc..de3eaf26 100644
--- a/test/e2e/integration/pages/identity/user.spec.js
+++ b/test/e2e/integration/pages/identity/user.spec.js
@@ -41,7 +41,7 @@ describe('The User Page', () => {
it('successfully create', () => {
const creatUrl = `${listUrl}/create`;
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.url()
.should('include', creatUrl)
.formInput('name', name)
diff --git a/test/e2e/integration/pages/manila/share-type.spec.js b/test/e2e/integration/pages/manila/share-type.spec.js
index 19ea9736..d81b3ed5 100644
--- a/test/e2e/integration/pages/manila/share-type.spec.js
+++ b/test/e2e/integration/pages/manila/share-type.spec.js
@@ -38,7 +38,7 @@ onlyOn(manilaServiceEnabled, () => {
});
it('successfully create', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.formInput('name', name)
.formText('description', 'create')
.formSelect('driver_handles_share_servers')
@@ -60,7 +60,7 @@ onlyOn(manilaServiceEnabled, () => {
.goToDetail()
.clickDetailTab('Extra Specs')
.wait(5000)
- .clickHeaderButton(1)
+ .clickHeaderActionButton(0)
.formInput('keyName', extraKeyName)
.formInput('value', 1000)
.clickModalActionSubmitButton();
diff --git a/test/e2e/integration/pages/network/floatingip.spec.js b/test/e2e/integration/pages/network/floatingip.spec.js
index 9343d26a..1de644c2 100644
--- a/test/e2e/integration/pages/network/floatingip.spec.js
+++ b/test/e2e/integration/pages/network/floatingip.spec.js
@@ -45,7 +45,7 @@ describe('The Floating IP Page', () => {
it('successfully create', () => {
cy.wait(2000);
cy.intercept('GET', '/networks').as('networks');
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.wait('@networks')
.formSelect('floating_network_id')
.clickModalActionSubmitButton();
@@ -54,7 +54,7 @@ describe('The Floating IP Page', () => {
it('successfully batch create', () => {
cy.wait(2000);
cy.intercept('GET', '/networks').as('networks');
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.wait('@networks')
.formSelect('floating_network_id')
.formCheckboxClick('batch_allocate')
diff --git a/test/e2e/integration/pages/network/lb.spec.js b/test/e2e/integration/pages/network/lb.spec.js
index 9b2f4a6c..39c9dbf6 100644
--- a/test/e2e/integration/pages/network/lb.spec.js
+++ b/test/e2e/integration/pages/network/lb.spec.js
@@ -51,7 +51,7 @@ onlyOn(lbServiceEnabled, () => {
});
it('successfully create lb', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.wait(5000)
.formInput('name', name)
.formText('description', name)
@@ -117,7 +117,7 @@ onlyOn(lbServiceEnabled, () => {
it('successfully create listener', () => {
cy.tableSearchText(name)
.goToDetail(1, 2000)
- .clickHeaderButton(1)
+ .clickHeaderActionButton(0)
.formInput('name', listener2)
.formText('description', listener2)
.formSelect('protocol')
@@ -193,7 +193,7 @@ onlyOn(lbServiceEnabled, () => {
.tableSearchText(listener)
.goToDetail(0, 2000)
.clickDetailTab('Members')
- .clickHeaderButton(1)
+ .clickHeaderActionButton(0)
.formButtonClick('extMembers')
.get('.ant-form-item')
.eq(1)
diff --git a/test/e2e/integration/pages/network/network.spec.js b/test/e2e/integration/pages/network/network.spec.js
index e02a77c4..9f5f2e62 100644
--- a/test/e2e/integration/pages/network/network.spec.js
+++ b/test/e2e/integration/pages/network/network.spec.js
@@ -35,7 +35,7 @@ describe('The Network Page', () => {
});
it('successfully create with subnet', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.formInput('name', name)
.formText('description', name)
.formSelect('availableZone')
diff --git a/test/e2e/integration/pages/network/port.spec.js b/test/e2e/integration/pages/network/port.spec.js
index f329116d..8ebaad2a 100644
--- a/test/e2e/integration/pages/network/port.spec.js
+++ b/test/e2e/integration/pages/network/port.spec.js
@@ -48,7 +48,7 @@ describe('The Port Page', () => {
});
it('successfully create', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.formInput('name', name)
.formText('description', name)
.formTableSelectBySearch('network_id', networkName, 5000)
@@ -75,7 +75,7 @@ describe('The Port Page', () => {
cy.tableSearchText(name)
.goToDetail()
.clickDetailTab('Allowed Address Pairs')
- .clickHeaderButton(1)
+ .clickHeaderActionButton(0)
.formSelect('ip_version')
.formInput('ip_address', '10.10.10.1/24')
.formSelect('mac_address')
@@ -158,7 +158,7 @@ describe('The Port Page', () => {
cy.tableSearchText(name)
.goToDetail()
.clickDetailTab('Fixed IPs')
- .clickHeaderButton(1)
+ .clickHeaderActionButton(0)
.formButtonClick('fixed_ips')
.formSelect('fixed_ips')
.clickModalActionSubmitButton();
diff --git a/test/e2e/integration/pages/network/qos-policy.spec.js b/test/e2e/integration/pages/network/qos-policy.spec.js
index bfca76d6..6a6a8fa3 100644
--- a/test/e2e/integration/pages/network/qos-policy.spec.js
+++ b/test/e2e/integration/pages/network/qos-policy.spec.js
@@ -36,7 +36,7 @@ onlyOn(qosServiceEnabled, () => {
});
it('successfully create', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.wait(2000)
.formInput('name', name)
.formText('description', name)
diff --git a/test/e2e/integration/pages/network/router.spec.js b/test/e2e/integration/pages/network/router.spec.js
index f1265c4a..6117fe32 100644
--- a/test/e2e/integration/pages/network/router.spec.js
+++ b/test/e2e/integration/pages/network/router.spec.js
@@ -30,7 +30,7 @@ describe('The Router Page', () => {
});
it('successfully create', () => {
- cy.clickHeaderButton(1, 5000)
+ cy.clickHeaderActionButton(0, 5000)
.formInput('name', name)
.formText('description', name)
.formTableSelect('hints')
diff --git a/test/e2e/integration/pages/network/security-group.spec.js b/test/e2e/integration/pages/network/security-group.spec.js
index 4259c625..ae932fce 100644
--- a/test/e2e/integration/pages/network/security-group.spec.js
+++ b/test/e2e/integration/pages/network/security-group.spec.js
@@ -24,7 +24,7 @@ describe('The Security Group Page', () => {
});
it('successfully create', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.formInput('name', name)
.formText('description', name)
.clickModalActionSubmitButton();
@@ -39,7 +39,7 @@ describe('The Security Group Page', () => {
cy.tableSearchText(name)
.goToDetail()
.wait(5000)
- .clickHeaderButton(1)
+ .clickHeaderActionButton(0)
.formSelect('ethertype')
.formInput('sourcePort', 80)
.formInput('remote_ip_prefix', '192.168.0.0/24')
diff --git a/test/e2e/integration/pages/network/vpn.spec.js b/test/e2e/integration/pages/network/vpn.spec.js
index b0544442..30b9d30d 100644
--- a/test/e2e/integration/pages/network/vpn.spec.js
+++ b/test/e2e/integration/pages/network/vpn.spec.js
@@ -51,7 +51,7 @@ onlyOn(vpnServiceEnabled, () => {
});
it('successfully create gateway', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.formInput('name', gateway)
.formText('description', gateway)
.formTableSelectBySearch('router_id', routerName)
@@ -60,7 +60,7 @@ onlyOn(vpnServiceEnabled, () => {
it('successfully create local endpoint', () => {
cy.clickTab('VPN EndPoint Groups', 'vpn_endpoint_groups')
- .clickHeaderButton(1)
+ .clickHeaderActionButton(0)
.wait(5000)
.formInput('name', endpointLocal)
.formText('description', endpointLocal)
@@ -73,7 +73,7 @@ onlyOn(vpnServiceEnabled, () => {
it('successfully create peer endpoint', () => {
cy.clickTab('VPN EndPoint Groups', 'vpn_endpoint_groups')
- .clickHeaderButton(1)
+ .clickHeaderActionButton(0)
.formInput('name', endpointPeer)
.formText('description', endpointPeer)
.formSelect('type', 'Peer')
@@ -84,7 +84,7 @@ onlyOn(vpnServiceEnabled, () => {
it('successfully create ike policy', () => {
cy.clickTab('IKE Policies', 'ike_policy')
- .clickHeaderButton(1)
+ .clickHeaderActionButton(0)
.formInput('name', ikePolicy)
.formText('description', ikePolicy)
.clickModalActionSubmitButton();
@@ -92,7 +92,7 @@ onlyOn(vpnServiceEnabled, () => {
it('successfully create ipsec policy', () => {
cy.clickTab('IPsec Policies', 'ipsec_policy')
- .clickHeaderButton(1)
+ .clickHeaderActionButton(0)
.formInput('name', ipsecPolicy)
.formText('description', ipsecPolicy)
.clickModalActionSubmitButton();
@@ -100,7 +100,7 @@ onlyOn(vpnServiceEnabled, () => {
it('successfully create ipsec site connection', () => {
cy.clickTab('IPsec Site Connections', 'ipsec_site_connections')
- .clickHeaderButton(1)
+ .clickHeaderActionButton(0)
.wait(5000)
.formInput('name', ipsecSiteConnection)
.formText('description', ipsecSiteConnection)
diff --git a/test/e2e/integration/pages/storage/backup.spec.js b/test/e2e/integration/pages/storage/backup.spec.js
index 2bae5d99..1b8aed64 100644
--- a/test/e2e/integration/pages/storage/backup.spec.js
+++ b/test/e2e/integration/pages/storage/backup.spec.js
@@ -44,7 +44,7 @@ onlyOn(backupServiceEnabled, () => {
});
it('successfully create full backup', () => {
- cy.clickHeaderButton(1, 5000)
+ cy.clickHeaderActionButton(0, 5000)
.formInput('name', name)
.formTableSelectBySearch('volume', volumeName)
.clickModalActionSubmitButton()
@@ -54,7 +54,7 @@ onlyOn(backupServiceEnabled, () => {
});
it('successfully create increment backup', () => {
- cy.clickHeaderButton(1, 5000)
+ cy.clickHeaderActionButton(0, 5000)
.formInput('name', nameInc)
.formRadioChoose('incremental', 1)
.formTableSelectBySearch('volume', volumeName)
diff --git a/test/e2e/integration/pages/storage/qos.spec.js b/test/e2e/integration/pages/storage/qos.spec.js
index c4c755df..c45bfdc9 100644
--- a/test/e2e/integration/pages/storage/qos.spec.js
+++ b/test/e2e/integration/pages/storage/qos.spec.js
@@ -23,7 +23,7 @@ describe('The Qos Specs Page', () => {
});
it('successfully create', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.formInput('name', name)
.formSelect('consumer')
.clickModalActionSubmitButton()
@@ -39,7 +39,7 @@ describe('The Qos Specs Page', () => {
cy.tableSearchText(name)
.goToDetail()
.wait(5000)
- .clickHeaderButton(1)
+ .clickHeaderActionButton(0)
.formInput('value', 1000)
.clickModalActionSubmitButton();
});
diff --git a/test/e2e/integration/pages/storage/swift.spec.js b/test/e2e/integration/pages/storage/swift.spec.js
index 96870402..8a9bf202 100644
--- a/test/e2e/integration/pages/storage/swift.spec.js
+++ b/test/e2e/integration/pages/storage/swift.spec.js
@@ -39,11 +39,11 @@ onlyOn(swiftEnabled, () => {
});
it('successfully create container', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.formInput('name', name)
.clickModalActionSubmitButton();
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.formInput('name', name2)
.clickModalActionSubmitButton();
});
@@ -58,10 +58,10 @@ onlyOn(swiftEnabled, () => {
it('successfully create folder', () => {
cy.tableSearchText(name).goToContainerDetail();
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.formInput('folder_name', folderName)
.clickModalActionSubmitButton();
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.formInput('folder_name', folderName2)
.clickModalActionSubmitButton();
});
@@ -69,7 +69,7 @@ onlyOn(swiftEnabled, () => {
it('successfully upload file in container', () => {
cy.tableSearchText(name)
.goToContainerDetail()
- .clickHeaderButton(2)
+ .clickHeaderActionButton(2)
.formAttachFile('file', filename)
.clickModalActionSubmitButton();
});
diff --git a/test/e2e/integration/pages/storage/volume-type.spec.js b/test/e2e/integration/pages/storage/volume-type.spec.js
index bfe693ee..310799c7 100644
--- a/test/e2e/integration/pages/storage/volume-type.spec.js
+++ b/test/e2e/integration/pages/storage/volume-type.spec.js
@@ -28,7 +28,7 @@ describe('The Volume Type Page', () => {
it('successfully prepare resource', () => {
cy.clickTab('QoS Specs')
- .clickHeaderButton(1)
+ .clickHeaderActionButton(0)
.formInput('name', qosName)
.formSelect('consumer')
.clickModalActionSubmitButton()
@@ -36,7 +36,7 @@ describe('The Volume Type Page', () => {
});
it('successfully create', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.formInput('name', name)
.formText('description', 'create')
.clickModalActionSubmitButton()
@@ -53,7 +53,7 @@ describe('The Volume Type Page', () => {
.goToDetail()
.clickDetailTab('Extra Specs')
.wait(5000)
- .clickHeaderButton(1)
+ .clickHeaderActionButton(0)
.formInput('keyname', extraKeyName)
.formInput('value', 1000)
.clickModalActionSubmitButton();
diff --git a/test/e2e/integration/pages/storage/volume.spec.js b/test/e2e/integration/pages/storage/volume.spec.js
index bf5fca48..e37f3ece 100644
--- a/test/e2e/integration/pages/storage/volume.spec.js
+++ b/test/e2e/integration/pages/storage/volume.spec.js
@@ -48,7 +48,7 @@ describe('The Volume Page', () => {
it('successfully prepare resource by admin', () => {
cy.loginAdmin(volumeTypeListUrl)
- .clickHeaderButton(1)
+ .clickHeaderActionButton(0)
.formInput('name', volumeTypeName)
.clickModalActionSubmitButton()
.waitTableLoading();
@@ -61,7 +61,7 @@ describe('The Volume Page', () => {
it('successfully create', () => {
const creatUrl = `${listUrl}/create`;
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.url()
.should('include', creatUrl)
.wait(5000)
diff --git a/test/e2e/integration/pages/zun/capsule.spec.js b/test/e2e/integration/pages/zun/capsule.spec.js
index ffb0d05a..0734a4e0 100644
--- a/test/e2e/integration/pages/zun/capsule.spec.js
+++ b/test/e2e/integration/pages/zun/capsule.spec.js
@@ -20,7 +20,7 @@ onlyOn(zunServiceEnabled, () => {
});
it('successfully create', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.formAttachFile('template_file', filename)
.clickModalActionSubmitButton();
});
diff --git a/test/e2e/integration/pages/zun/container.spec.js b/test/e2e/integration/pages/zun/container.spec.js
index b4365ace..0add63a4 100644
--- a/test/e2e/integration/pages/zun/container.spec.js
+++ b/test/e2e/integration/pages/zun/container.spec.js
@@ -20,7 +20,7 @@ onlyOn(zunServiceEnabled, () => {
});
it('successfully create', () => {
- cy.clickHeaderButton(1)
+ cy.clickHeaderActionButton(0)
.url()
.should('include', `${listUrl}/create`)
.wait(5000)
diff --git a/test/e2e/support/resource-commands.js b/test/e2e/support/resource-commands.js
index 9bd21439..ef7fbb0d 100644
--- a/test/e2e/support/resource-commands.js
+++ b/test/e2e/support/resource-commands.js
@@ -34,7 +34,7 @@ Cypress.Commands.add('createInstance', ({ name, networkName }) => {
const imageName = Cypress.env('imageName');
const imageType = Cypress.env('imageType');
cy.visitPage(instanceListUrl)
- .clickHeaderButton(1)
+ .clickHeaderActionButton(0)
.wait(8000)
.formTableSelect('flavor')
.formRadioChooseByLabel('image', imageType)
@@ -64,7 +64,7 @@ Cypress.Commands.add('createInstance', ({ name, networkName }) => {
Cypress.Commands.add('createNetwork', ({ name }) => {
const cidr = `10.10.${Cypress._.random(50, 100)}.0/24`;
cy.visitPage(networkListUrl)
- .clickHeaderButton(1)
+ .clickHeaderActionButton(0)
.wait(2000)
.formInput('name', name)
.formSelect('availableZone')
@@ -77,7 +77,7 @@ Cypress.Commands.add('createNetwork', ({ name }) => {
Cypress.Commands.add('createNetworkPolicy', ({ name }) => {
cy.visitPage(policyListUrl)
- .clickHeaderButton(1)
+ .clickHeaderActionButton(0)
.formInput('name', name)
.formText('description', name)
// .formSelect('project_id', 'admin')
@@ -87,7 +87,7 @@ Cypress.Commands.add('createNetworkPolicy', ({ name }) => {
Cypress.Commands.add('createRouter', ({ name, network }) => {
cy.visitPage(routerListUrl)
- .clickHeaderButton(1, 5000)
+ .clickHeaderActionButton(0, 5000)
.formInput('name', name)
.formCheckboxClick('openExternalNetwork')
.wait(2000)
@@ -183,7 +183,7 @@ Cypress.Commands.add('createVolume', (name) => {
Cypress.Commands.add('createSecurityGroup', ({ name }) => {
cy.visitPage(securityGroupListUrl)
- .clickHeaderButton(1)
+ .clickHeaderActionButton(0)
.formInput('name', name)
.clickModalActionSubmitButton();
});
@@ -192,7 +192,7 @@ Cypress.Commands.add('createFip', () => {
cy.intercept('GET', '/networks').as('networks');
cy.visitPage(fipListUrl)
.wait(2000)
- .clickHeaderButton(1)
+ .clickHeaderActionButton(0)
.wait('@networks')
.formSelect('floating_network_id')
.clickModalActionSubmitButton();
@@ -200,7 +200,7 @@ Cypress.Commands.add('createFip', () => {
Cypress.Commands.add('createUserGroup', ({ name }) => {
cy.visitPage(userGroupListUrl)
- .clickHeaderButton(1)
+ .clickHeaderActionButton(0)
.formInput('name', name)
.clickModalActionSubmitButton();
});
@@ -211,7 +211,7 @@ Cypress.Commands.add('createUser', ({ name }) => {
const phone = '18500000000';
const password = 'passW0rd_';
cy.visitPage(userListUrl)
- .clickHeaderButton(1)
+ .clickHeaderActionButton(0)
.wait(2000)
.formInput('name', name)
.formInput('email', email)
@@ -227,7 +227,7 @@ Cypress.Commands.add('createUser', ({ name }) => {
Cypress.Commands.add('createProject', ({ name }) => {
cy.visitPage(projectListUrl)
- .clickHeaderButton(1)
+ .clickHeaderActionButton(0)
.formInput('name', name)
.clickModalActionSubmitButton();
});
@@ -249,7 +249,7 @@ Cypress.Commands.add('createIronicFlavor', (name) => {
cy.setAllFlavorType();
cy.visitPage(flavorListUrl)
.clickTab('Bare Metal', 'bare_metal')
- .clickHeaderButton(1)
+ .clickHeaderActionButton(0)
.formRadioChoose('category', 0)
.formInput('name', name)
.clickStepActionNextButton()
@@ -260,7 +260,7 @@ Cypress.Commands.add('createIronicFlavor', (name) => {
Cypress.Commands.add('createIronicImage', ({ name }) => {
const filename = 'cirros-0.4.0-x86_64-disk.qcow2';
cy.visitPage(imageListUrl)
- .clickHeaderButton(1)
+ .clickHeaderActionButton(0)
.formInput('name', name)
.formAttachFile('file', filename)
.formSelect('disk_format', 'QCOW2 - QEMU Emulator')
diff --git a/test/e2e/support/table-commands.js b/test/e2e/support/table-commands.js
index b0cfab05..99b276e3 100644
--- a/test/e2e/support/table-commands.js
+++ b/test/e2e/support/table-commands.js
@@ -18,28 +18,45 @@ Cypress.Commands.add('waitTableLoading', () => {
cy.get('.ant-spin-dot-spin', { timeout: 120000 }).should('not.exist');
});
-Cypress.Commands.add('clickHeaderButton', (buttonIndex, waitTime = 2000) => {
- cy.get('.table-header-btns')
- .find('button')
- .eq(buttonIndex)
- .click({ force: true });
- cy.wait(waitTime);
-});
+Cypress.Commands.add(
+ 'clickHeaderTableButton',
+ (buttonIndex, waitTime = 2000) => {
+ cy.get('.table-header-btns')
+ .find('button')
+ .eq(buttonIndex)
+ .click({ force: true });
+ cy.wait(waitTime);
+ }
+);
-Cypress.Commands.add('clickHeaderButtonByTitle', (title, waitTime = 2000) => {
- const realTitle = getTitle(title);
- cy.get('.table-header-btns')
- .find('button')
- .contains(realTitle)
- .click({ force: true });
- cy.wait(waitTime);
-});
+Cypress.Commands.add(
+ 'clickHeaderActionButton',
+ (buttonIndex, waitTime = 2000) => {
+ cy.get('.table-header-action-btns')
+ .find('button')
+ .eq(buttonIndex)
+ .click({ force: true });
+ cy.wait(waitTime);
+ }
+);
+
+Cypress.Commands.add(
+ 'clickHeaderActionButtonByTitle',
+ (title, waitTime = 2000) => {
+ const realTitle = getTitle(title);
+ cy.get('.table-header-action-btns')
+ .find('button')
+ .contains(realTitle)
+ .click({ force: true });
+ cy.wait(waitTime);
+ }
+);
Cypress.Commands.add(
'clickHeaderConfirmButtonByTitle',
(title, waitTime = 2000) => {
const realTitle = getTitle(title);
- cy.get('.table-header-btns')
+ cy.get('.table-header-action-btns')
.find('button')
.contains(realTitle)
.click({ force: true });
@@ -49,11 +66,11 @@ Cypress.Commands.add(
);
Cypress.Commands.add(
- 'clickHeaderButtonInMoreByTitle',
+ 'clickHeaderActionButtonInMoreByTitle',
(title, waitTime = 2000) => {
const realTitle = getTitle(title);
const moreTitle = getTitle('More Actions');
- cy.get('.table-header-btns')
+ cy.get('.table-action-header-btns')
.find('.ant-dropdown-trigger')
.contains(moreTitle)
.trigger('mouseover', { force: true });
@@ -320,7 +337,7 @@ Cypress.Commands.add('waitStatusTextByFresh', (text) => {
const noLengthCallback = () => {
// eslint-disable-next-line no-console
console.log('not contain', index);
- cy.freshTable();
+ cy.refreshTable();
index += 1;
cy.wait(5000);
};
@@ -368,7 +385,7 @@ Cypress.Commands.add('waitStatusActiveByRefresh', () => {
const noLengthCallback = () => {
// eslint-disable-next-line no-console
console.log('not active', index);
- cy.freshTable();
+ cy.refreshTable();
index += 1;
cy.wait(5000);
cy.getStatusLength(
@@ -422,10 +439,10 @@ Cypress.Commands.add('waitStatusGreen', (index) => {
}
});
-Cypress.Commands.add('freshTable', () => {
+Cypress.Commands.add('refreshTable', () => {
// eslint-disable-next-line no-console
console.log('fresh table');
- cy.clickHeaderButton(0).waitTableLoading();
+ cy.clickHeaderTableButton(0).waitTableLoading();
});
Cypress.Commands.add('collapseItemClick', (name) => {