Skip to content

Commit 4fbff38

Browse files
committed
stupid
1 parent b2d3f70 commit 4fbff38

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
@@ -127,44 +127,59 @@ test.describe('context menu', () => {
127127
});
128128

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

147-
const newText = page.getByText('test name');
140+
// Select the layer
141+
await layerText.click();
142+
await page.waitForTimeout(1000);
143+
await expect(layerItem).toHaveClass(/jp-mod-selected/);
148144

149-
await expect(newText).toBeVisible();
145+
// Start rename with F2
146+
await layerText.press('F2');
150147

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

163-
const restoredText = page
164-
.getByLabel('Layers', { exact: true })
165-
.getByText('Open Topo Map');
153+
// Enter new name
154+
await textbox.fill('test name');
155+
await textbox.press('Enter');
166156

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

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

0 commit comments

Comments
 (0)