Skip to content

Commit 2727ad3

Browse files
committed
chore: (WIP) Fixes table integ tests for React 18
1 parent 041d9eb commit 2727ad3

File tree

5 files changed

+30
-20
lines changed

5 files changed

+30
-20
lines changed

pages/table/expandable-rows-test.page.tsx

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -269,15 +269,18 @@ function useTableData() {
269269

270270
// Imitate server-side delay when items update.
271271
const memoItems = useEqualsMemo(collectionResult.items);
272-
const [readyItems, setReadyItems] = useState(memoItems);
272+
const [delayedItems, setReadyItems] = useState(memoItems);
273+
const readyItems = settings.manualServerMock ? memoItems : delayedItems;
273274
useEffect(() => {
274-
setLoading(true);
275-
setError(false);
276-
return getServerResponse(() => {
277-
setLoading(false);
278-
setReadyItems(memoItems);
279-
setError(settings.emulateServerError);
280-
});
275+
if (!settings.manualServerMock) {
276+
setLoading(true);
277+
setError(false);
278+
return getServerResponse(() => {
279+
setLoading(false);
280+
setReadyItems(memoItems);
281+
setError(settings.emulateServerError);
282+
});
283+
}
281284
// eslint-disable-next-line react-hooks/exhaustive-deps
282285
}, [getServerResponse, memoItems, setLoading, setError, setReadyItems]);
283286

@@ -490,6 +493,7 @@ function PageSettings() {
490493
function useEqualsMemo<T>(value: T): T {
491494
const ref = useRef<T>(value);
492495
if (!isEqual(value, ref.current)) {
496+
console.log(ref.current, value);
493497
ref.current = value;
494498
}
495499
return ref.current;

src/table/__integ__/expandable-rows.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ describe('Expandable rows', () => {
4545
})
4646
);
4747

48-
(process.env.REACT_VERSION !== '18' ? test : test.skip)(
48+
test(
4949
'uses items loader on the first expandable item',
5050
setupTest({ useProgressiveLoading: true, useServerMock: true }, async page => {
5151
const targetCluster = 'cluster-33387b6c';

src/table/__integ__/performance-marks.test.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,19 @@ function setupTest(
1313
}) => Promise<void>
1414
) {
1515
return useBrowser(async browser => {
16-
if (process.env.REACT_VERSION === '18') {
17-
return;
18-
}
1916
const page = new BasePageObject(browser);
2017
await browser.url(`#/light/table/performance-marks${!inViewport ? '?outsideOfViewport=true' : ''}`);
2118
const getMarks = async () => {
22-
await new Promise(r => setTimeout(r, 200));
23-
const marks = await browser.execute(() => performance.getEntriesByType('mark') as PerformanceMark[]);
24-
return marks.filter(m => m.detail?.source === 'awsui');
19+
let awsuiMarks: PerformanceMark[] = [];
20+
await page.waitForAssertion(async () => {
21+
await new Promise(r => setTimeout(r, 200));
22+
const marks = await browser.execute(() => performance.getEntriesByType('mark') as PerformanceMark[]);
23+
awsuiMarks = marks.filter(m => m.detail?.source === 'awsui');
24+
if (awsuiMarks.length === 0) {
25+
throw new Error('No awsui marks available.');
26+
}
27+
});
28+
return awsuiMarks;
2529
};
2630
const isElementPerformanceMarkExisting = (id: string) =>
2731
page.isExisting(`[data-analytics-performance-mark="${id}"]`);

src/table/__integ__/resizable-columns.test.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
22
// SPDX-License-Identifier: Apache-2.0
33

4+
import { range } from 'lodash';
5+
46
import { BasePageObject } from '@cloudscape-design/browser-test-tools/page-objects';
57
import useBrowser from '@cloudscape-design/browser-test-tools/use-browser';
68

@@ -131,7 +133,7 @@ const setupTest = (testFn: (page: TablePage) => Promise<void>, config?: PageConf
131133
return useBrowser({ ...defaultScreen }, async browser => {
132134
const page = new TablePage(browser);
133135
const params = new URLSearchParams({
134-
visualRefresh: 'false',
136+
visualRefresh: 'true',
135137
stickyHeader: config?.stickyHeader !== undefined ? String(config.stickyHeader) : 'false',
136138
withColumnIds: config?.withColumnIds !== undefined ? String(config.withColumnIds) : 'true',
137139
withSelection: config?.withSelection !== undefined ? String(config.withSelection) : 'false',
@@ -331,8 +333,8 @@ test(
331333
})
332334
);
333335

334-
(process.env.REACT_VERSION !== '18' ? test : test.skip)(
335-
'should recover column widths when the inner state is reset',
336+
test.each(range(0, 100))(
337+
'should recover column widths when the inner state is reset, %s',
336338
setupTest(async page => {
337339
await page.resizeColumn(2, 100);
338340
const oldWidth = await page.getColumnWidth(2);

src/table/__integ__/table.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ test(
6161
})
6262
);
6363

64-
(process.env.REACT_VERSION !== '18' ? test : test.skip)(
64+
test(
6565
'sets role=region and aria-label on scrollable wrapper when overflowing',
6666
useBrowser(async browser => {
6767
const tableWrapper = createWrapper().findTable();
@@ -84,6 +84,6 @@ test(
8484
ariaLabelledby = await page.getElementAttribute(scrollableWrapperSelector, 'aria-labelledby');
8585
expect(role).toEqual('region');
8686
expect(ariaLabelledby).not.toBeFalsy();
87-
await expect(page.getElementsText(`#${ariaLabelledby}`)).resolves.toEqual([tableHeading]);
87+
await expect(page.getElementsText(`#${CSS.escape(ariaLabelledby)}`)).resolves.toEqual([tableHeading]);
8888
})
8989
);

0 commit comments

Comments
 (0)