Skip to content

Commit a8ec9ac

Browse files
committed
stupid
1 parent 2fe0714 commit a8ec9ac

File tree

1 file changed

+48
-33
lines changed

1 file changed

+48
-33
lines changed

ui-tests/tests/contextmenu.spec.ts

Lines changed: 48 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -122,44 +122,59 @@ test.describe('context menu', () => {
122122
});
123123

124124
test('pressing F2 should start rename for layer', async ({ page }) => {
125-
await page
126-
.getByLabel('Layers', { exact: true })
127-
.getByText('Open Topo Map')
128-
.click();
129-
await page
130-
.getByLabel('Layers', { exact: true })
131-
.getByText('Open Topo Map')
132-
.press('F2');
133-
await page
134-
.getByLabel('Layers', { exact: true })
135-
.getByRole('textbox')
136-
.fill('test name');
137-
await page
138-
.getByLabel('Layers', { exact: true })
139-
.getByRole('textbox')
140-
.press('Enter');
125+
const layersPanel = page.getByLabel('Layers', { exact: true });
126+
const layerName = 'Open Topo Map';
127+
const layerText = layersPanel.getByText(layerName);
128+
129+
// Find the parent layer item container (which gets the selected class)
130+
// Structure: div.jp-gis-layerItem > div.jp-gis-layerTitle > span.jp-gis-layerText
131+
const layerItem = layerText.locator(
132+
'xpath=ancestor::div[contains(@class, "jp-gis-layerItem")]',
133+
);
141134

142-
const newText = page.getByText('test name');
135+
// Select the layer
136+
await layerText.click();
137+
await page.waitForTimeout(1000);
138+
await expect(layerItem).toHaveClass(/jp-mod-selected/);
143139

144-
await expect(newText).toBeVisible();
140+
// Start rename with F2
141+
await layerText.press('F2');
145142

146-
// reset layer name
147-
await page.locator('#jp-gis-layer-tree div').nth(2).click();
148-
await page.locator('#jp-gis-layer-tree div').nth(2).press('F2');
149-
await page
150-
.getByLabel('Layers', { exact: true })
151-
.getByRole('textbox')
152-
.fill('Open Topo Map');
153-
await page
154-
.getByLabel('Layers', { exact: true })
155-
.getByRole('textbox')
156-
.press('Enter');
143+
// Wait for the textbox to appear and be focused
144+
const textbox = layersPanel.getByRole('textbox');
145+
await expect(textbox).toBeVisible();
146+
await expect(textbox).toBeFocused();
157147

158-
const restoredText = page
159-
.getByLabel('Layers', { exact: true })
160-
.getByText('Open Topo Map');
148+
// Enter new name
149+
await textbox.fill('test name');
150+
await textbox.press('Enter');
161151

162-
await expect(restoredText).toBeVisible();
152+
// Wait for rename to complete and verify new name appears
153+
await expect(layersPanel.getByText('test name')).toBeVisible();
154+
await expect(layersPanel.getByText(layerName)).not.toBeVisible();
155+
156+
// Reset: rename back to original name
157+
const renamedText = layersPanel.getByText('test name');
158+
const renamedItem = renamedText.locator(
159+
'xpath=ancestor::div[contains(@class, "jp-gis-layerItem")]',
160+
);
161+
await renamedText.click();
162+
await page.waitForTimeout(1000);
163+
await expect(renamedItem).toHaveClass(/jp-mod-selected/);
164+
await renamedText.press('F2');
165+
166+
// Wait for textbox again
167+
const resetTextbox = layersPanel.getByRole('textbox');
168+
await expect(resetTextbox).toBeVisible();
169+
await expect(resetTextbox).toBeFocused();
170+
171+
// Enter original name
172+
await resetTextbox.fill(layerName);
173+
await resetTextbox.press('Enter');
174+
175+
// Verify original name is restored
176+
await expect(layersPanel.getByText(layerName)).toBeVisible();
177+
await expect(layersPanel.getByText('test name')).not.toBeVisible();
163178
});
164179

165180
test('pressing F2 should start rename for group', async ({ page }) => {

0 commit comments

Comments
 (0)