Skip to content

Commit 61e4edc

Browse files
fix tests
1 parent 2819e34 commit 61e4edc

20 files changed

Lines changed: 90 additions & 55 deletions

File tree

.github/workflows/run-testcafe-on-gh-pages.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ jobs:
7878
working-directory: devextreme/apps/demos
7979
env:
8080
CHANGEDFILEINFOSPATH: changed-files.json
81-
BROWSERS: chrome:headless --window-size=1200,800 --disable-partial-raster --disable-skia-runtime-opts --run-all-compositor-stages-before-draw --disable-new-content-rendering-timeout --disable-threaded-animation --disable-threaded-scrolling --disable-checker-imaging --disable-image-animation-resync --use-gl="swiftshader" --disable-features=PaintHolding --js-flags=--random-seed=2147483647 --font-render-hinting=none --disable-font-subpixel-positioning
81+
BROWSERS: chrome:headless --window-size=1200,800 --disable-partial-raster --disable-skia-runtime-opts --run-all-compositor-stages-before-draw --disable-new-content-rendering-timeout --disable-threaded-animation --disable-threaded-scrolling --disable-checker-imaging --disable-image-animation-resync --use-gl="swiftshader" --disable-features=PaintHolding,KeyboardFocusableScrollers --js-flags=--random-seed=2147483647 --font-render-hinting=none --disable-font-subpixel-positioning
8282
#DEBUG: hammerhead:*,testcafe:*
8383
CONCURRENCY: 4
8484
TCQUARANTINE: true

.github/workflows/visual-tests-demos.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -717,7 +717,7 @@ jobs:
717717
- name: Set Chrome flags
718718
id: chrome-flags
719719
run: |
720-
BASE_FLAGS="chrome:headless --window-size=1200,800 --disable-gpu --no-sandbox --disable-dev-shm-usage --disable-partial-raster --disable-skia-runtime-opts --run-all-compositor-stages-before-draw --disable-new-content-rendering-timeout --disable-threaded-animation --disable-threaded-scrolling --disable-checker-imaging --disable-image-animation-resync --use-gl=swiftshader --disable-features=PaintHolding --js-flags=--random-seed=2147483647"
720+
BASE_FLAGS="chrome:headless --window-size=1200,800 --disable-gpu --no-sandbox --disable-dev-shm-usage --disable-partial-raster --disable-skia-runtime-opts --run-all-compositor-stages-before-draw --disable-new-content-rendering-timeout --disable-threaded-animation --disable-threaded-scrolling --disable-checker-imaging --disable-image-animation-resync --use-gl=swiftshader --disable-features=PaintHolding,KeyboardFocusableScrollers --js-flags=--random-seed=2147483647"
721721
722722
# For Material theme, enable better font rendering to avoid instability
723723
if [[ "${{ matrix.THEME }}" != *"material"* ]]; then
@@ -902,7 +902,7 @@ jobs:
902902
working-directory: apps/demos
903903
env:
904904
NODE_OPTIONS: --max-old-space-size=8192
905-
BROWSERS: chrome:headless --window-size=1200,800 --disable-gpu --no-sandbox --disable-dev-shm-usage --disable-partial-raster --disable-skia-runtime-opts --run-all-compositor-stages-before-draw --disable-new-content-rendering-timeout --disable-threaded-animation --disable-threaded-scrolling --disable-checker-imaging --disable-image-animation-resync --use-gl=swiftshader --disable-features=PaintHolding --js-flags=--random-seed=2147483647 --font-render-hinting=none --disable-font-subpixel-positioning
905+
BROWSERS: chrome:headless --window-size=1200,800 --disable-gpu --no-sandbox --disable-dev-shm-usage --disable-partial-raster --disable-skia-runtime-opts --run-all-compositor-stages-before-draw --disable-new-content-rendering-timeout --disable-threaded-animation --disable-threaded-scrolling --disable-checker-imaging --disable-image-animation-resync --use-gl=swiftshader --disable-features=PaintHolding,KeyboardFocusableScrollers --js-flags=--random-seed=2147483647 --font-render-hinting=none --disable-font-subpixel-positioning
906906
# DEBUG: hammerhead:*,testcafe:*
907907
CONCURRENCY: ${{ steps.set-concurrency.outputs.concurrency }}
908908
TCQUARANTINE: true
@@ -1029,7 +1029,7 @@ jobs:
10291029
working-directory: apps/demos
10301030
env:
10311031
CHANGEDFILEINFOSPATH: changed-files.json
1032-
BROWSERS: chrome:headless --window-size=1200,800 --disable-gpu --no-sandbox --disable-dev-shm-usage --disable-partial-raster --disable-skia-runtime-opts --run-all-compositor-stages-before-draw --disable-new-content-rendering-timeout --disable-threaded-animation --disable-threaded-scrolling --disable-checker-imaging --disable-image-animation-resync --use-gl=swiftshader --disable-features=PaintHolding --js-flags=--random-seed=2147483647 --font-render-hinting=none --disable-font-subpixel-positioning
1032+
BROWSERS: chrome:headless --window-size=1200,800 --disable-gpu --no-sandbox --disable-dev-shm-usage --disable-partial-raster --disable-skia-runtime-opts --run-all-compositor-stages-before-draw --disable-new-content-rendering-timeout --disable-threaded-animation --disable-threaded-scrolling --disable-checker-imaging --disable-image-animation-resync --use-gl=swiftshader --disable-features=PaintHolding,KeyboardFocusableScrollers --js-flags=--random-seed=2147483647 --font-render-hinting=none --disable-font-subpixel-positioning
10331033
# DEBUG: hammerhead:*,testcafe:*
10341034
CONCURRENCY: 1
10351035
TCQUARANTINE: true

apps/demos/utils/visual-tests/testcafe-runner.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ async function main() {
9696

9797
const failedCount = await retry(() => runner
9898
.reporter(reporters)
99-
.browsers(process.env.BROWSERS || 'chrome --no-sandbox --disable-dev-shm-usage --disable-partial-raster --disable-skia-runtime-opts --run-all-compositor-stages-before-draw --disable-new-content-rendering-timeout --disable-threaded-animation --disable-threaded-scrolling --disable-checker-imaging --disable-image-animation-resync --use-gl=swiftshader --disable-features=PaintHolding --js-flags=--random-seed=2147483647 --font-render-hinting=none --disable-font-subpixel-positioning')
99+
.browsers(process.env.BROWSERS || 'chrome --no-sandbox --disable-dev-shm-usage --disable-partial-raster --disable-skia-runtime-opts --run-all-compositor-stages-before-draw --disable-new-content-rendering-timeout --disable-threaded-animation --disable-threaded-scrolling --disable-checker-imaging --disable-image-animation-resync --use-gl=swiftshader --disable-features=PaintHolding,KeyboardFocusableScrollers --js-flags=--random-seed=2147483647 --font-render-hinting=none --disable-font-subpixel-positioning')
100100
.concurrency(concurrency || 1)
101101
.run({
102102
quarantineMode: getQuarantineMode(),

e2e/testcafe-devextreme/helpers/domUtils.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,8 @@ export const addFocusableElementBefore = ClientFunction((
137137
return button.id;
138138
});
139139

140-
export const hasHorizontalScroll = async (container: Selector): Promise<boolean> => {
141-
const scrollWidth = await container.scrollWidth;
142-
const clientWidth = await container.clientWidth;
143-
return scrollWidth > clientWidth;
144-
};
140+
export const hasHorizontalScroll = ClientFunction((containerSelector) => {
141+
const container = containerSelector();
142+
143+
return container.scrollWidth > container.clientWidth;
144+
});

e2e/testcafe-devextreme/runner.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ function setShadowDom(args: ParsedArgs): void {
8989
function expandBrowserAlias(browser: string): string {
9090
switch (browser) {
9191
case 'chrome:devextreme-shr2':
92-
return 'chrome:headless --no-sandbox --disable-dev-shm-usage --disable-gpu --window-size=1200,800 --disable-partial-raster --disable-skia-runtime-opts --run-all-compositor-stages-before-draw --disable-new-content-rendering-timeout --disable-threaded-animation --disable-threaded-scrolling --disable-checker-imaging --disable-image-animation-resync --use-gl=swiftshader --disable-features=PaintHolding --js-flags=--random-seed=2147483647 --font-render-hinting=none --disable-font-subpixel-positioning';
92+
return 'chrome:headless --no-sandbox --disable-dev-shm-usage --disable-gpu --window-size=1200,800 --disable-partial-raster --disable-skia-runtime-opts --run-all-compositor-stages-before-draw --disable-new-content-rendering-timeout --disable-threaded-animation --disable-threaded-scrolling --disable-checker-imaging --disable-image-animation-resync --use-gl=swiftshader --disable-features=PaintHolding,KeyboardFocusableScrollers --js-flags=--random-seed=2147483647 --font-render-hinting=none --disable-font-subpixel-positioning';
9393
case 'chrome:docker':
9494
return 'chromium:headless --no-sandbox --disable-gpu --window-size=1200,800';
9595
default:

e2e/testcafe-devextreme/tests/cardView/columnSortable/functional.ts

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -315,15 +315,9 @@ test('cards should update when columns are reordered (T1324855)', async (t) => {
315315

316316
const headerPanel = cardView.getHeaderPanel();
317317
const firstHeader = headerPanel.getHeaderItem(0).element;
318-
const secondHeader = headerPanel.getHeaderItem(1).element;
319318

320-
await t.dragToElement(firstHeader, secondHeader, {
321-
destinationOffsetX: -5,
322-
destinationOffsetY: -20,
323-
speed: 0.5,
324-
});
319+
await dragToHeaderPanel(t, cardView, firstHeader, 2);
325320

326-
// Wait for headers to update after drag
327321
await t.expect(cardView.getHeaders().getHeaderItemNth(0).element.innerText).notEql('A');
328322

329323
const headerCaptions: string[] = [];

e2e/testcafe-devextreme/tests/cardView/columnSortable/utils.ts

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ export const expectColumns = async (
124124
expectedColumns: number[],
125125
source: 'headerPanel' | 'columnChooser' = 'headerPanel',
126126
): Promise<void> => {
127-
const actualColumns: string[] = [];
127+
const adjustedExpectedColumns = expectedColumns.map((columnIndex) => `Column ${columnIndex}`);
128128

129129
for (let i = 0; i < expectedColumns.length; i += 1) {
130130
// eslint-disable-next-line @typescript-eslint/init-declarations
@@ -137,12 +137,10 @@ export const expectColumns = async (
137137
column = treeView.getNodeItem(i);
138138
}
139139

140-
if (await column?.exists) {
141-
actualColumns.push(await column.innerText);
142-
}
140+
await t
141+
.expect(column.exists)
142+
.ok()
143+
.expect(column.innerText)
144+
.eql(adjustedExpectedColumns[i]);
143145
}
144-
145-
const adjustedExpectedColumns = expectedColumns.map((columnIndex) => `Column ${columnIndex}`);
146-
147-
await t.expect(actualColumns).eql(adjustedExpectedColumns);
148146
};

e2e/testcafe-devextreme/tests/dataGrid/common/editing/functional.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,9 @@ test('DataGrid - The "Cannot read properties of undefined error" occurs when usi
6666
.typeText(dataGrid.getDataCell(0, 0).element, 'new_value')
6767
.pressKey('enter tab tab');
6868
await resolveOnSavingDeferred();
69-
await t.expect(dataGrid.getDataCell(2, 0).isFocused).ok();
69+
await t
70+
.expect(dataGrid.isReady()).ok()
71+
.expect(dataGrid.getDataCell(2, 0).isFocused).ok();
7072
}).before(async () => {
7173
await ClientFunction(() => {
7274
(window as any).deferred = $.Deferred();

e2e/testcafe-devextreme/tests/dataGrid/common/filtering/functional.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ test('Don\'t calculate additional filter when filtering column list is empty', a
1212
// arrange
1313
const dataGrid = new DataGrid(GRID_CONTAINER);
1414
await t.expect(dataGrid.isReady()).ok();
15-
const consoleMessages = await t.getBrowserConsoleMessages();
1615

1716
// act
1817
await dataGrid.option({
@@ -37,8 +36,10 @@ test('Don\'t calculate additional filter when filtering column list is empty', a
3736
});
3837

3938
// assert
39+
const consoleMessages = await t.getBrowserConsoleMessages();
40+
4041
await t
41-
.expect(consoleMessages.error.every((msg) => !msg.includes('E1047')))
42+
.expect((consoleMessages?.error ?? []).every((msg) => !msg.includes('E1047')))
4243
.ok();
4344
}).before(async () => createWidget('dxDataGrid', {
4445
keyExpr: 'id',

e2e/testcafe-devextreme/tests/dataGrid/common/focus/focusEvents/newRows_T1162227.ts

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { ClientFunction } from 'testcafe';
12
import DataGrid from 'devextreme-testcafe-models/dataGrid';
23
import { createWidget } from '../../../../../helpers/createWidget';
34
import url from '../../../../../helpers/getPageUrl';
@@ -337,24 +338,18 @@ test('It should fire correct events on page change', async (t) => {
337338

338339
test('It should fire row changed event and change page if focusedRowKey on another page', async (t) => {
339340
const expectedRowFocusChanged: FocusRowChangedData[] = [[1]];
341+
const getRowFocusChanged = ClientFunction(() => {
342+
const extendedWindow = window as WindowCallbackExtended;
340343

341-
const dataGrid = new DataGrid(GRID_SELECTOR);
342-
343-
await t.wait(100);
344-
345-
const [
346-
,
347-
,
348-
,
349-
rowFocusChanged,
350-
] = await collectEventsCallbackResults();
344+
return extendedWindow.clientTesting!.data.rowFocusChanged;
345+
});
351346

352-
const cellText = await dataGrid.getDataCell(3, 0).element().innerText;
347+
const dataGrid = new DataGrid(GRID_SELECTOR);
353348

354349
await t
355-
.expect(rowFocusChanged)
350+
.expect(getRowFocusChanged())
356351
.eql(expectedRowFocusChanged)
357-
.expect(cellText)
352+
.expect(dataGrid.getDataCell(3, 0).element.innerText)
358353
.eql('dataA_3');
359354
}).before(async () => {
360355
await initCallbackTesting();

0 commit comments

Comments
 (0)