Skip to content

Commit d80cc5c

Browse files
committed
fix broken test
1 parent ccd28b9 commit d80cc5c

File tree

3 files changed

+39
-40
lines changed

3 files changed

+39
-40
lines changed

zeppelin-web-angular/e2e/models/base-page.ts

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,20 @@ export class BasePage {
3535

3636
async clickE2ETestFolder(): Promise<void> {
3737
await this.e2eTestFolder.waitFor({ state: 'visible', timeout: 30000 });
38-
await this.e2eTestFolderSwitcher.locator('.ant-tree-switcher').click();
39-
await this.e2eTestFolderSwitcher.locator('.ant-tree-switcher_open').waitFor({ state: 'visible' });
38+
39+
// Check if already open
40+
const openSwitcher = this.e2eTestFolderSwitcher.locator('.ant-tree-switcher_open');
41+
const isAlreadyOpen = await openSwitcher.isVisible();
42+
43+
if (!isAlreadyOpen) {
44+
const switcher = this.e2eTestFolderSwitcher.locator('.ant-tree-switcher');
45+
await switcher.waitFor({ state: 'visible' });
46+
await switcher.click();
47+
48+
// Wait for the switcher to change to open state
49+
await openSwitcher.waitFor({ state: 'visible', timeout: 10000 });
50+
}
51+
4052
await this.page.waitForLoadState('networkidle', { timeout: 15000 });
4153
}
4254
}

zeppelin-web-angular/e2e/models/folder-rename-page.ts

Lines changed: 19 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -66,46 +66,29 @@ export class FolderRenamePage extends BasePage {
6666
})
6767
});
6868

69-
// Ensure folder node is visible (expand if needed)
70-
if (!(await node.first().isVisible())) {
71-
this.clickE2ETestFolder();
69+
try {
70+
await expect(node.first()).toBeVisible();
71+
} catch {
72+
await this.clickE2ETestFolder();
73+
await expect(node.first()).toBeVisible();
7274
}
7375

74-
await expect(node.first()).toBeVisible();
7576
return node.first();
7677
}
7778

7879
async hoverOverFolder(folderName: string): Promise<void> {
7980
// Wait for the folder list to be loaded
80-
await this.page.waitForSelector('zeppelin-node-list', { state: 'visible' });
81-
82-
const rawNode = await this.getFolderNode(folderName);
81+
await this.hoverOverFolder(folderName);
8382

84-
const folderNode = await rawNode
85-
.locator('a.name', {
86-
has: this.page.locator('i.anticon-folder'),
87-
hasText: folderName
88-
})
89-
.first();
83+
const folderNode = await this.getFolderNode(folderName);
9084

91-
// Ensure folder node is visible (expand if needed)
92-
if (!(await folderNode.isVisible())) {
93-
this.clickE2ETestFolder();
94-
await folderNode.waitFor({ state: 'visible' });
85+
// Hover over the entire folder node to trigger operation buttons
86+
try {
87+
await folderNode.hover();
88+
} catch {
89+
await this.clickE2ETestFolder();
90+
await folderNode.hover();
9591
}
96-
97-
await folderNode.isVisible();
98-
await folderNode.hover();
99-
100-
// Wait for hover effects to take place by checking for interactive elements
101-
await this.page
102-
.waitForSelector('.node a[nz-tooltip], .node i[nztype], .node button', {
103-
state: 'visible',
104-
timeout: 5000
105-
})
106-
.catch(() => {
107-
console.log('No interactive elements found after hover, continuing...');
108-
});
10992
}
11093

11194
async clickDeleteIcon(folderName: string): Promise<void> {
@@ -114,15 +97,14 @@ export class FolderRenamePage extends BasePage {
11497

11598
const folderNode = await this.getFolderNode(folderName);
11699

117-
// Ensure folder node is visible (expand if needed)
118-
if (!(await folderNode.isVisible())) {
119-
this.clickE2ETestFolder();
120-
await folderNode.waitFor({ state: 'visible' });
100+
// Hover over the entire folder node to trigger operation buttons
101+
try {
102+
await folderNode.hover();
103+
} catch {
104+
await this.clickE2ETestFolder();
105+
await folderNode.hover();
121106
}
122107

123-
await folderNode.isVisible();
124-
await folderNode.hover();
125-
126108
const deleteIcon = folderNode.locator('.folder .operation a[nz-tooltip][nztooltiptitle="Move folder to Trash"]');
127109
await deleteIcon.click();
128110
}

zeppelin-web-angular/e2e/models/folder-rename-page.util.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,12 @@ export class FolderRenamePageUtil {
124124

125125
// Verify the original folder still exists and was not renamed or deleted.
126126
const originalFolderLocator = this.page.locator('.folder .name', { hasText: folderName });
127-
await expect(originalFolderLocator).toBeVisible({ timeout: 5000 });
127+
try {
128+
await expect(originalFolderLocator).toBeVisible({ timeout: 5000 });
129+
} catch {
130+
await this.folderRenamePage.clickE2ETestFolder();
131+
await expect(originalFolderLocator).toBeVisible({ timeout: 5000 });
132+
}
128133
}
129134

130135
async verifyDeleteIconIsDisplayed(folderName: string): Promise<void> {

0 commit comments

Comments
 (0)