Skip to content

Commit 761bee0

Browse files
authored
try to fix flaky xhtml & import (axonivy#829)
1 parent 7216c35 commit 761bee0

File tree

5 files changed

+24
-48
lines changed

5 files changed

+24
-48
lines changed

playwright/tests/import-process.spec.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { test } from './fixtures/baseTest';
1+
import { expect, test } from './fixtures/baseTest';
22
import { FileExplorer } from './page-objects/explorer-view';
33
import { ProcessEditor } from './page-objects/process-editor';
44

@@ -10,6 +10,8 @@ test('Import BPMN Process', async ({ page }) => {
1010

1111
await explorer.selectNode('resources');
1212
await explorer.selectNode('all_elements_diagram.bpmn');
13+
await expect(processEditor.editorContent()).toContainText('<bpmn:category id=');
1314
await explorer.importBpmnProcess('resources/all_elements_diagram.bpmn');
15+
await explorer.executeCommand('Refresh Explorer');
1416
await explorer.hasNode(`all_elements_diagram.p.json`);
1517
});

playwright/tests/page-objects/explorer-view.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,7 @@ import path from 'path';
33
import { View, type ViewData } from './view';
44

55
export abstract class ExplorerView extends View {
6-
constructor(
7-
private viewName: string,
8-
page: Page
9-
) {
6+
constructor(private viewName: string, page: Page) {
107
const data: ViewData = {
118
tabSelector: `div.pane-header:has-text("${viewName}")`,
129
viewSelector: ''
@@ -100,8 +97,7 @@ export class FileExplorer extends ExplorerView {
10097
}
10198

10299
async importBpmnProcess(bpmnXml: string) {
103-
await this.executeCommand('Axon Ivy: Import BPMN Process');
104-
await this.provideUserInput(bpmnXml);
100+
await this.executeCommand('Axon Ivy: Import BPMN Process', bpmnXml);
105101
}
106102

107103
async addUserDialog(dialogName: string, namespace: string, kind: 'Html Dialog (JSF)' | 'Offline Dialog (JSF)' | 'Dialog Form') {

playwright/tests/page-objects/page-object.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export class PageObject {
1313
await this.page.locator(`.quick-input-list-entry:has-text("${command}")`).nth(0).click({ force: true, timeout: 100 });
1414
}).toPass();
1515
for (const userInput of userInputs) {
16-
this.provideUserInput(userInput);
16+
await this.provideUserInput(userInput);
1717
}
1818
}
1919

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,18 @@
1-
import { type Locator, type Page } from '@playwright/test';
1+
import { expect, type Locator, type Page } from '@playwright/test';
22
import { Editor } from './editor';
33

44
export class XhtmlEditor extends Editor {
55
readonly complitions: Locator;
6-
6+
77
constructor(page: Page, editorFile = 'testXhtml.xhtml') {
88
super(editorFile, page);
99
this.complitions = page.locator('.suggest-widget');
1010
}
11+
12+
async expectCompletionAtLineColumn(completion: string, line: number, column: number) {
13+
await this.executeCommand('Go to Line/Column...', `:${line}:${column}`);
14+
await expect(this.page.locator('a.statusbar-item-label').getByText(`Ln ${line}, Col ${column}`)).toBeVisible();
15+
await this.executeCommand('Trigger Suggest');
16+
await expect(this.complitions.getByText(completion)).toBeVisible();
17+
}
1118
}
Lines changed: 9 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,11 @@
1-
import { expect, test } from './fixtures/baseTest';
1+
import { test } from './fixtures/baseTest';
22
import { XhtmlEditor } from './page-objects/xhtml-editor';
33

4-
test('primeface tag completion', async ({ page }) => {
5-
const editor = new XhtmlEditor(page);
6-
await editor.hasNoStatusMessage();
7-
await editor.openEditorFile();
8-
await page.getByText('<p:messages').click();
9-
await page.keyboard.press('Control+Space');
10-
await expect(editor.complitions).toBeVisible();
11-
await expect(editor.complitions.getByText('p:media')).toBeVisible();
12-
});
13-
14-
test('primeface attr completion', async ({ page }) => {
15-
const editor = new XhtmlEditor(page);
16-
await editor.hasNoStatusMessage();
17-
await editor.openEditorFile();
18-
await page.getByText('<p:messages />').click();
19-
await page.keyboard.press('End');
20-
await page.keyboard.press('ArrowLeft+ArrowLeft');
21-
await page.keyboard.press('Control+Space');
22-
await expect(editor.complitions).toBeVisible();
23-
await expect(editor.complitions.getByText('rendered')).toBeVisible();
24-
});
25-
26-
test('htmlBasic tag completion', async ({ page }) => {
27-
const editor = new XhtmlEditor(page);
28-
await editor.hasNoStatusMessage();
29-
await editor.openEditorFile();
30-
await page.getByText('<h:form').click();
31-
await page.keyboard.press('Home');
32-
await page.keyboard.press('ArrowRight+ArrowRight');
33-
await page.keyboard.press('Control+Space');
34-
await expect(editor.complitions).toBeVisible();
35-
await expect(editor.complitions.getByText('h:body')).toBeVisible();
36-
});
37-
38-
39-
40-
4+
test('xhtml completions', async ({ page }) => {
5+
const editor = new XhtmlEditor(page);
6+
await editor.hasDeployProjectStatusMessage();
7+
await editor.openEditorFile();
8+
await editor.expectCompletionAtLineColumn('p:media', 18, 11);
9+
await editor.expectCompletionAtLineColumn('rendered', 18, 19);
10+
await editor.expectCompletionAtLineColumn('h:body', 17, 6);
11+
});

0 commit comments

Comments
 (0)