@@ -3,6 +3,7 @@ import myEformsPage from '../../Page objects/MyEforms.page';
33import pluginPage from '../../Page objects/Plugin.page' ;
44
55import { expect } from 'chai' ;
6+ import { $ } from '@wdio/globals' ;
67
78describe ( '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