Skip to content

Commit 402c7b8

Browse files
Copilotrenemadsen
andcommitted
Update WDIO tests to use action menu for plugin activation
Co-authored-by: renemadsen <[email protected]>
1 parent 7a07853 commit 402c7b8

File tree

1 file changed

+59
-6
lines changed

1 file changed

+59
-6
lines changed

eform-client/e2e/Tests/time-planning-settings/application-settings.plugins-page.spec.ts

Lines changed: 59 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import myEformsPage from '../../Page objects/MyEforms.page';
33
import pluginPage from '../../Page objects/Plugin.page';
44

55
import { expect } from 'chai';
6+
import { $ } from '@wdio/globals';
67

78
describe('Application settings page - site header section', function () {
89
before(async () => {
@@ -16,19 +17,71 @@ describe('Application settings page - site header section', function () {
1617
expect(backendPlugin.id).equal(1);
1718
expect(backendPlugin.name).equal('Microting Time Planning Plugin');
1819
expect(backendPlugin.version).equal('1.0.0.0');
19-
expect(backendPlugin.status, 'status is not equal').eq('toggle_off');
20+
21+
// Open action menu to check status
22+
const actionMenuBtn = await $('#action-items-0').$('#actionMenu');
23+
await actionMenuBtn.waitForDisplayed({ timeout: 40000 });
24+
await actionMenuBtn.waitForClickable({ timeout: 40000 });
25+
await actionMenuBtn.click();
26+
await browser.pause(500);
27+
28+
const statusBtn = await $('#plugin-status-button0');
29+
await statusBtn.waitForDisplayed({ timeout: 40000 });
30+
const statusIcon = await statusBtn.$('mat-icon');
31+
const status = await statusIcon.getText();
32+
expect(status, 'status is not equal').eq('toggle_off');
33+
34+
// Close the menu
35+
await browser.keys(['Escape']);
36+
await browser.pause(300);
2037
});
2138

2239
it('should activate the plugin', async () => {
23-
let backendPlugin = await pluginPage.getFirstPluginRowObj();
24-
await backendPlugin.enableOrDisablePlugin();
25-
26-
backendPlugin = await pluginPage.getFirstPluginRowObj();
40+
// Open action menu
41+
const actionMenuBtn = await $('#action-items-0').$('#actionMenu');
42+
await actionMenuBtn.waitForDisplayed({ timeout: 40000 });
43+
await actionMenuBtn.waitForClickable({ timeout: 40000 });
44+
await actionMenuBtn.click();
45+
await browser.pause(500);
46+
47+
// Click on the status button inside the menu
48+
const statusBtn = await $('#plugin-status-button0');
49+
await statusBtn.waitForDisplayed({ timeout: 40000 });
50+
await statusBtn.waitForClickable({ timeout: 40000 });
51+
await statusBtn.click();
52+
await browser.pause(500);
53+
54+
// Confirm activation in the modal
55+
const pluginOKBtn = await $('#pluginOKBtn');
56+
await pluginOKBtn.waitForDisplayed({ timeout: 40000 });
57+
await pluginOKBtn.click();
58+
await browser.pause(100000); // We need to wait 100 seconds for the plugin to create db etc.
59+
60+
// Re-login and navigate back to plugins page
61+
await loginPage.open('/');
62+
await loginPage.login();
63+
await myEformsPage.Navbar.goToPluginsPage();
64+
await browser.pause(500);
65+
66+
// Verify the plugin is now activated
67+
const backendPlugin = await pluginPage.getFirstPluginRowObj();
2768
expect(backendPlugin.id).equal(1);
2869
expect(backendPlugin.name).equal('Microting Time Planning Plugin');
2970
expect(backendPlugin.version).equal('1.0.0.0');
71+
72+
// Open action menu to check new status
73+
const actionMenuBtn2 = await $('#action-items-0').$('#actionMenu');
74+
await actionMenuBtn2.waitForDisplayed({ timeout: 40000 });
75+
await actionMenuBtn2.waitForClickable({ timeout: 40000 });
76+
await actionMenuBtn2.click();
77+
await browser.pause(500);
78+
79+
const statusBtn2 = await $('#plugin-status-button0');
80+
await statusBtn2.waitForDisplayed({ timeout: 40000 });
81+
const statusIcon2 = await statusBtn2.$('mat-icon');
82+
const status = await statusIcon2.getText();
3083
expect(
31-
backendPlugin.status,
84+
status,
3285
'backendConfigurationPlugin is not enabled'
3386
).eq('toggle_on');
3487
});

0 commit comments

Comments
 (0)