Skip to content

Commit 7046e38

Browse files
committed
Create merge conflict tests
1 parent fd8b439 commit 7046e38

File tree

4 files changed

+61
-31
lines changed

4 files changed

+61
-31
lines changed

.eslintignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ dist
33
coverage
44
**/*.d.ts
55
tests
6+
ui-tests

ui-tests/tests/hello-world.spec.ts

Lines changed: 0 additions & 19 deletions
This file was deleted.

ui-tests/tests/merge-conflict.spec.ts

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
import { test, expect, Locator } from '@playwright/test';
2+
3+
const TARGET_URL = process.env.TARGET_URL ?? 'http://localhost:8888';
4+
5+
test.describe('Merge conflict tests', () => {
6+
test.beforeEach(async ({ page }) => {
7+
// URL for merge conflict example repository
8+
await page.goto(`${TARGET_URL}/lab/tree/merge-conflict-example`);
9+
10+
await page.waitForSelector('#jupyterlab-splash', { state: 'detached' });
11+
await page.waitForSelector('div[role="main"] >> text=Launcher');
12+
13+
const gitTabBar = await page.waitForSelector(
14+
'.lm-TabBar-tab[data-id="jp-git-sessions"]'
15+
);
16+
const selected = await gitTabBar.getAttribute('aria-selected');
17+
18+
// Git panel may be already open on launch
19+
if (selected === 'false') {
20+
await gitTabBar.click();
21+
}
22+
});
23+
24+
test('should diff conflicted text file', async ({ page }) => {
25+
await page.click('[title="file.txt • Conflicted"]', { clickCount: 2 });
26+
await page.waitForSelector(
27+
'.jp-git-diff-parent-widget[id^="CURRENT-INCOMING"] .jp-spinner',
28+
{ state: 'detached' }
29+
);
30+
await page.waitForSelector('.jp-git-diff-root');
31+
32+
// Verify 3-way merge view appears
33+
const banner = page.locator('.jp-git-diff-banner');
34+
await expect(banner).toHaveText(/CURRENT/);
35+
await expect(banner).toHaveText(/RESULT/);
36+
await expect(banner).toHaveText(/INCOMING/);
37+
38+
const mergeDiff = page.locator('.CodeMirror-merge-3pane');
39+
await expect(mergeDiff).toBeVisible();
40+
});
41+
42+
test('should diff conflicted notebook file', async ({ page }) => {
43+
await page.click('[title="Untitled.ipynb • Conflicted"]', {
44+
clickCount: 2
45+
});
46+
await page.waitForSelector(
47+
'.jp-git-diff-parent-widget[id^="CURRENT-INCOMING"] .jp-spinner',
48+
{ state: 'detached' }
49+
);
50+
await page.waitForSelector('.jp-git-diff-root');
51+
52+
// Verify notebook merge view appears
53+
const banner = page.locator('.jp-git-diff-banner');
54+
await expect(banner).toHaveText(/CURRENT/);
55+
await expect(banner).toHaveText(/INCOMING/);
56+
57+
const mergeDiff = page.locator('.jp-Notebook-merge');
58+
await expect(mergeDiff).toBeVisible();
59+
});
60+
});

ui-tests/tests/merge.spec.ts

Lines changed: 0 additions & 12 deletions
This file was deleted.

0 commit comments

Comments
 (0)