Skip to content

Commit a6f3b6f

Browse files
Attempt 5 (attempt 4 - 20 min)
1 parent 833f144 commit a6f3b6f

7 files changed

Lines changed: 123 additions & 71 deletions

File tree

.github/workflows/testcafe_tests.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ env:
1515
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_TOKEN }}
1616
NX_SKIP_NX_CACHE: ${{ (github.event_name != 'pull_request' || contains( github.event.pull_request.labels.*.name, 'skip-cache')) && 'true' || 'false' }}
1717
BUILD_TEST_INTERNAL_PACKAGE: true
18+
CI: true
1819

1920
jobs:
2021
build:

e2e/testcafe-devextreme/runner.js

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,8 @@ createTestCafe(TESTCAFE_CONFIG)
7171

7272
const args = getArgs();
7373
const testName = args.test.trim();
74-
const reporter = typeof args.reporter === 'string' ? args.reporter.trim() : args.reporter;
74+
// const reporter = typeof args.reporter === 'string' ? args.reporter.trim() : args.reporter;
75+
const reporter = 'spec';
7576
const indices = args.indices.trim();
7677
let componentFolder = args.componentFolder.trim();
7778
const file = args.file.trim();
@@ -142,11 +143,11 @@ createTestCafe(TESTCAFE_CONFIG)
142143
if (testName) {
143144
filters.push(name => name === testName);
144145
}
145-
if (args.skipUnstable) {
146-
filters.push((testName, fixtureName, fixturePath, testMeta) => {
147-
return !testMeta.unstable;
148-
});
149-
}
146+
// if (args.skipUnstable) {
147+
// filters.push((testName, fixtureName, fixturePath, testMeta) => {
148+
// return !testMeta.unstable;
149+
// });
150+
// }
150151
if (filters.length) {
151152
runner.filter((...args) => {
152153
for (let i = 0; i < filters.length; i++) {
@@ -162,12 +163,25 @@ createTestCafe(TESTCAFE_CONFIG)
162163
}
163164

164165
const runOptions = {
165-
quarantineMode: { successThreshold: 1, attemptLimit: 10 },
166+
quarantineMode: { successThreshold: 1, attemptLimit: 5 },
166167
};
167168

169+
const attemptsCounter = new Map();
170+
168171
runOptions.hooks = {
169172
test: {
170173
before: async(t) => {
174+
if (!t.testContext) {
175+
t.testContext = {};
176+
}
177+
t.testContext.startTime = Date.now();
178+
179+
const testName = t.testRun.test.name;
180+
const prev = attemptsCounter.get(testName) || 0;
181+
attemptsCounter.set(testName, prev + 1);
182+
183+
console.log(`▶️ ${testName}, attempt №${prev + 1}`);
184+
171185
const [width, height] = DEFAULT_BROWSER_SIZE;
172186
await t.resizeWindow(width, height);
173187

@@ -180,6 +194,12 @@ createTestCafe(TESTCAFE_CONFIG)
180194
}
181195
},
182196
after: async() => {
197+
if (t.testContext && t.testContext.startTime) {
198+
const duration = Date.now() - t.testContext.startTime;
199+
const seconds = (duration / 1000).toFixed(2);
200+
console.log(`\n⏱️ Test "${t.testRun.test.name}" completed in ${seconds}s\n`);
201+
}
202+
183203
await testPageUtils.clearTestPage();
184204
}
185205
},
@@ -227,7 +247,7 @@ function getArgs() {
227247
browsers: 'chrome',
228248
test: '',
229249
// reporter: [process.env.CI === 'true' ? 'list' : 'spec'],
230-
reporter: 'spec',
250+
reporter: ['spec'],
231251
componentFolder: '',
232252
file: '*',
233253
cache: true,

e2e/testcafe-devextreme/tests/cardView/columnChooser/visual.ts

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -45,40 +45,40 @@ const CARD_VIEW_SELECTOR = '#container';
4545
// ],
4646
// }));
4747

48-
test('column chooser in \'dragAndDrop\' mode', async (t) => {
49-
const { takeScreenshot, compareResults } = createScreenshotsComparer(t);
50-
const cardView = new CardView(CARD_VIEW_SELECTOR);
51-
const columnChooser = cardView.getColumnChooser();
48+
// test('column chooser in \'dragAndDrop\' mode', async (t) => {
49+
// const { takeScreenshot, compareResults } = createScreenshotsComparer(t);
50+
// const cardView = new CardView(CARD_VIEW_SELECTOR);
51+
// const columnChooser = cardView.getColumnChooser();
5252

53-
await cardView.apiShowColumnChooser();
53+
// await cardView.apiShowColumnChooser();
5454

55-
await testScreenshot(t, takeScreenshot, 'card-view_column-chooser_drag_mode.png', { element: columnChooser.content });
55+
// await testScreenshot(t, takeScreenshot, 'card-view_column-chooser_drag_mode.png', { element: columnChooser.content });
5656

57-
await t
58-
.expect(compareResults.isValid())
59-
.ok(compareResults.errorMessages());
57+
// await t
58+
// .expect(compareResults.isValid())
59+
// .ok(compareResults.errorMessages());
6060

61-
const a11yCheckConfig = {
62-
rules: { 'color-contrast': { enabled: false } },
63-
};
64-
await a11yCheck(t, a11yCheckConfig, CARD_VIEW_SELECTOR);
65-
}).before(async () => createWidget('dxCardView', {
66-
columnChooser: {
67-
enabled: true,
68-
mode: 'dragAndDrop',
69-
height: 400,
70-
width: 400,
71-
search: {
72-
enabled: true,
73-
},
74-
},
75-
columns: [
76-
{ dataField: 'Column 1', visible: false },
77-
{ dataField: 'Column 2', visible: false, allowHiding: false },
78-
{ dataField: 'Column 3', visible: false, showInColumnChooser: false },
79-
{ dataField: 'Column 4', visible: false },
80-
],
81-
}));
61+
// const a11yCheckConfig = {
62+
// rules: { 'color-contrast': { enabled: false } },
63+
// };
64+
// await a11yCheck(t, a11yCheckConfig, CARD_VIEW_SELECTOR);
65+
// }).before(async () => createWidget('dxCardView', {
66+
// columnChooser: {
67+
// enabled: true,
68+
// mode: 'dragAndDrop',
69+
// height: 400,
70+
// width: 400,
71+
// search: {
72+
// enabled: true,
73+
// },
74+
// },
75+
// columns: [
76+
// { dataField: 'Column 1', visible: false },
77+
// { dataField: 'Column 2', visible: false, allowHiding: false },
78+
// { dataField: 'Column 3', visible: false, showInColumnChooser: false },
79+
// { dataField: 'Column 4', visible: false },
80+
// ],
81+
// }));
8282

8383
test('cardView with opened columnChooser', async (t) => {
8484
const { takeScreenshot, compareResults } = createScreenshotsComparer(t);

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

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -79,35 +79,35 @@ test('dropzone appear in headerPanel when drag from columnChooser a column', asy
7979
],
8080
}));
8181

82-
test('dropzone appears in headerPanel when drag from columnChooser a column with allowReordering: false', async (t) => {
83-
const { takeScreenshot, compareResults } = createScreenshotsComparer(t);
84-
85-
const cardView = new CardView(CARD_VIEW_SELECTOR);
86-
const columnElement = getColumnItem(cardView, 0, 'columnChooser');
87-
88-
await cardView.apiShowColumnChooser();
89-
90-
await triggerDragStart(columnElement);
91-
await t.wait(500); // wait for dropzone animation to finish
92-
await testScreenshot(t, takeScreenshot, 'card-view_column-sortable_header-panel_dropzone_1.png', { element: cardView.element });
93-
94-
await triggerDragEnd(columnElement);
95-
await t.wait(500); // wait for dropzone animation to finish
96-
await testScreenshot(t, takeScreenshot, 'card-view_column-sortable_header-panel_dropzone_2.png', { element: cardView.element });
97-
98-
await t
99-
.expect(compareResults.isValid())
100-
.ok(compareResults.errorMessages());
101-
102-
await a11yCheck(t, {}, CARD_VIEW_SELECTOR);
103-
}).before(async () => createWidget('dxCardView', {
104-
allowColumnReordering: true,
105-
columnChooser: {
106-
enabled: true,
107-
},
108-
height: 600,
109-
columns: [
110-
{ dataField: 'Column 1' },
111-
{ dataField: 'Column 2', visible: false, allowReordering: false },
112-
],
113-
}));
82+
// test('dropzone appears in headerPanel when drag from columnChooser a column with allowReordering: false', async (t) => {
83+
// const { takeScreenshot, compareResults } = createScreenshotsComparer(t);
84+
85+
// const cardView = new CardView(CARD_VIEW_SELECTOR);
86+
// const columnElement = getColumnItem(cardView, 0, 'columnChooser');
87+
88+
// await cardView.apiShowColumnChooser();
89+
90+
// await triggerDragStart(columnElement);
91+
// await t.wait(500); // wait for dropzone animation to finish
92+
// await testScreenshot(t, takeScreenshot, 'card-view_column-sortable_header-panel_dropzone_1.png', { element: cardView.element });
93+
94+
// await triggerDragEnd(columnElement);
95+
// await t.wait(500); // wait for dropzone animation to finish
96+
// await testScreenshot(t, takeScreenshot, 'card-view_column-sortable_header-panel_dropzone_2.png', { element: cardView.element });
97+
98+
// await t
99+
// .expect(compareResults.isValid())
100+
// .ok(compareResults.errorMessages());
101+
102+
// await a11yCheck(t, {}, CARD_VIEW_SELECTOR);
103+
// }).before(async () => createWidget('dxCardView', {
104+
// allowColumnReordering: true,
105+
// columnChooser: {
106+
// enabled: true,
107+
// },
108+
// height: 600,
109+
// columns: [
110+
// { dataField: 'Column 1' },
111+
// { dataField: 'Column 2', visible: false, allowReordering: false },
112+
// ],
113+
// }));

packages/devextreme-scss/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
},
2121
"scripts": {
2222
"build": "gulp",
23+
"build:ci": "gulp style-compiler-themes-ci",
2324
"lint": "stylelint scss/widgets",
2425
"test": "jest --no-coverage --runInBand --config=./tests/jest.config.json",
2526
"watch": "gulp watch"

packages/devextreme-scss/project.json

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,27 @@
3434
"{projectRoot}/**/*"
3535
],
3636
"cache": true
37+
},
38+
"build-ci": {
39+
"executor": "nx:run-script",
40+
"options": {
41+
"script": "build:ci"
42+
},
43+
"inputs": [
44+
"{projectRoot}/build/**/*",
45+
"{projectRoot}/fonts/**/*",
46+
"{projectRoot}/icons/**/*",
47+
"{projectRoot}/images/**/*",
48+
"{projectRoot}/scss/**/*",
49+
"{projectRoot}/gulpfile.js"
50+
],
51+
"outputs": [
52+
"{projectRoot}/scss/bundles",
53+
"{workspaceRoot}/packages/devextreme/artifacts/css/dx.*.css",
54+
"{workspaceRoot}/packages/devextreme/artifacts/css/fonts",
55+
"{workspaceRoot}/packages/devextreme/artifacts/css/icons"
56+
],
57+
"cache": true
3758
}
3859
},
3960
"tags": []

tools/scripts/build-all.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,16 +52,25 @@ if (!devMode) {
5252
injectDescriptions();
5353
}
5454

55+
console.log(`Building DevExtreme: devMode ${devMode}...`);
56+
console.log('🔍 Debug info:');
57+
console.log(' isCI:', process.env.CI);
58+
5559
if (devMode) {
5660
sh.exec('pnpx nx build devextreme');
5761
} else {
58-
sh.exec('pnpx nx build devextreme-scss');
62+
const isCI = process.env.CI === 'true';
63+
const scssCommand = isCI ? 'pnpx nx build-ci devextreme-scss' : 'pnpx nx build devextreme-scss';
64+
65+
sh.exec(scssCommand);
5966
sh.exec('pnpx nx build-dist devextreme --skipNxCache', {
6067
env: {
6168
...sh.env,
6269
BUILD_INTERNAL_PACKAGE: 'false'
6370
}
6471
});
72+
73+
console.log(' SCSS build completed');
6574
}
6675

6776
sh.exec(`pnpx nx build devextreme-themebuilder${devMode ? '' : ' --skipNxCache'}`);

0 commit comments

Comments
 (0)