Skip to content

Commit 4c5fe58

Browse files
authored
Merge pull request #489 from ProgressPlanner/filip/v15/tour-fix
Remove tour steps for Settings popover
2 parents 98dcfdc + 0fb09c6 commit 4c5fe58

4 files changed

Lines changed: 40 additions & 42 deletions

File tree

assets/js/tour.js

Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -37,18 +37,10 @@ const prplDriverObj = prplDriver( {
3737
popover, // eslint-disable-line no-unused-vars
3838
{ config, state } // eslint-disable-line no-unused-vars
3939
) => {
40-
const settingsPopover = document.getElementById(
41-
'prpl-popover-settings'
42-
);
4340
const monthlyBadgesPopover = document.getElementById(
4441
'prpl-popover-monthly-badges'
4542
);
46-
47-
if ( state.activeIndex === 4 ) {
48-
prplTourShowPopover( settingsPopover );
49-
}
50-
51-
if ( state.activeIndex === 7 ) {
43+
if ( state.activeIndex === 5 ) {
5244
prplTourShowPopover( monthlyBadgesPopover );
5345
}
5446

@@ -85,25 +77,16 @@ function prplMakePopoverBackdropTransparent( popover ) {
8577

8678
// eslint-disable-next-line no-unused-vars -- This is called on a few buttons.
8779
function prplStartTour() {
88-
const settingsPopover = document.getElementById( 'prpl-popover-settings' );
8980
const monthlyBadgesPopover = document.getElementById(
9081
'prpl-popover-monthly-badges'
9182
);
9283
const progressPlannerTourSteps = progressPlannerTour.steps;
93-
progressPlannerTourSteps[ 3 ].popover.onNextClick = function () {
94-
prplTourShowPopover( settingsPopover );
95-
prplDriverObj.moveNext();
96-
};
97-
progressPlannerTourSteps[ 4 ].popover.onNextClick = function () {
98-
prplTourHidePopover( settingsPopover );
99-
prplDriverObj.moveNext();
100-
};
10184

102-
progressPlannerTourSteps[ 6 ].popover.onNextClick = function () {
85+
progressPlannerTourSteps[ 4 ].popover.onNextClick = function () {
10386
prplTourShowPopover( monthlyBadgesPopover );
10487
prplDriverObj.moveNext();
10588
};
106-
progressPlannerTourSteps[ 7 ].popover.onNextClick = function () {
89+
progressPlannerTourSteps[ 5 ].popover.onNextClick = function () {
10790
prplTourHidePopover( monthlyBadgesPopover );
10891
prplDriverObj.moveNext();
10992
};

classes/admin/class-tour.php

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -53,24 +53,6 @@ public function get_steps() {
5353
'align' => 'center',
5454
],
5555
],
56-
[
57-
'element' => '#prpl-popover-settings-trigger',
58-
'popover' => [
59-
'title' => \esc_html__( 'Settings', 'progress-planner' ),
60-
'description' => \esc_html__( 'With this button you can open the settings. Here you can determine which post types you want to include in your activity score.', 'progress-planner' ),
61-
'side' => 'top',
62-
'align' => 'center',
63-
],
64-
],
65-
[
66-
'element' => '#prpl-popover-settings',
67-
'popover' => [
68-
'title' => \esc_html__( 'Post types', 'progress-planner' ),
69-
'description' => \esc_html__( 'Simply select the post types you want to include in your activity score and hit save.', 'progress-planner' ),
70-
'side' => 'top',
71-
'align' => 'center',
72-
],
73-
],
7456
[
7557
'element' => '.prpl-widget-wrapper.prpl-todo',
7658
'popover' => [

tests/e2e/auth.setup.js

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,16 @@ async function cleanup() {
1212
}
1313
}
1414

15+
// Handle async cleanup properly
16+
async function handleCleanup() {
17+
await cleanup();
18+
process.exit( 0 );
19+
}
20+
1521
// Register cleanup on process exit
16-
// process.on( 'exit', cleanup ); // it gets triggered between sequential & parallel tests
17-
process.on( 'SIGINT', cleanup );
18-
process.on( 'SIGTERM', cleanup );
22+
process.on( 'exit', () => cleanup() ); // exit event doesn't support async, it gets triggered between sequential & parallel tests
23+
process.on( 'SIGINT', () => handleCleanup() );
24+
process.on( 'SIGTERM', () => handleCleanup() );
1925

2026
async function globalSetup() {
2127
const authFile = path.join( process.cwd(), 'auth.json' );

tests/e2e/tour.spec.js

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,34 @@ test.describe( 'PRPL Tour', () => {
1313
await tourButton.click();
1414

1515
// Wait for and verify the tour popover is visible
16-
const tourPopover = page.locator( '.driver-popover' );
16+
let tourPopover = page.locator( '.driver-popover' );
1717
await expect( tourPopover ).toBeVisible();
18+
19+
// Get the number of steps from the window object
20+
const numberOfSteps = await page.evaluate(
21+
() => window.progressPlannerTour.steps.length
22+
);
23+
24+
for ( let i = 0; i < numberOfSteps - 1; i++ ) {
25+
tourPopover = page.locator( '.driver-popover' );
26+
27+
// Wait for the popover to be visible before interacting
28+
await expect( tourPopover ).toBeVisible();
29+
30+
// Click the "Next" button if it's not the last step
31+
if ( i < numberOfSteps - 1 ) {
32+
const nextButton = page.locator( '.driver-popover-next-btn' );
33+
await nextButton.click();
34+
}
35+
}
36+
37+
const nextButton = page.locator( '.driver-popover-next-btn' );
38+
39+
// Verify the button text changes to "Finish" on the last step
40+
await expect( nextButton ).toHaveText( 'Finish' );
41+
42+
// Click the finish button and verify the tour popover closes
43+
await nextButton.click();
44+
await expect( tourPopover ).not.toBeVisible();
1845
} );
1946
} );

0 commit comments

Comments
 (0)