Skip to content

Commit 2382f17

Browse files
TrevorBurnhamat-susie
authored andcommitted
test: Update tests for ResizeObserver polyfill removal (#3867)
1 parent 54d1edc commit 2382f17

File tree

2 files changed

+21
-4
lines changed

2 files changed

+21
-4
lines changed

src/app-layout/__tests__/main.test.tsx

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
22
// SPDX-License-Identifier: Apache-2.0
33
import * as React from 'react';
4+
import { useLayoutEffect } from 'react';
45
import { waitFor } from '@testing-library/react';
56

67
import '../../__a11y__/to-validate-a11y';
@@ -11,6 +12,22 @@ import { describeEachAppLayout, renderComponent, testDrawer } from './utils';
1112
import mobileStyles from '../../../lib/components/app-layout/mobile-toolbar/styles.css.js';
1213
import sharedStyles from '../../../lib/components/app-layout/styles.css.js';
1314

15+
jest.mock('@cloudscape-design/component-toolkit/internal', () => ({
16+
...jest.requireActual('@cloudscape-design/component-toolkit/internal'),
17+
useResizeObserver: (getElement: any, onObserve: any) => {
18+
useLayoutEffect(() => {
19+
if (typeof getElement === 'function') {
20+
const element = getElement();
21+
if (element) {
22+
// Extract height from inline styles for JSDOM compatibility
23+
const height = parseInt(element.style.height) || 0;
24+
onObserve({ borderBoxHeight: height });
25+
}
26+
}
27+
}, [getElement, onObserve]);
28+
},
29+
}));
30+
1431
test('does not render mobile mode by default', () => {
1532
const { wrapper } = renderComponent(<AppLayout />);
1633
expect(wrapper.findByClassName(mobileStyles['mobile-bar'])).toBeFalsy();

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,11 +89,11 @@ test(
8989
await page.installObserver(wrapper.find('table').toSelector());
9090
await page.click('#shrink-container');
9191
await page.waitForJsTimers();
92-
// expected 1 observation after creating observer and 1 caused by container shrink
93-
await expect(page.getObservations()).resolves.toBe(2);
92+
// check to ensure that we haven't triggered an infinite resize loop
93+
await expect(page.getObservations()).resolves.toBeLessThanOrEqual(3);
9494
await page.waitForJsTimers();
95-
// ensure there are no more observations added after the expected 2
96-
await expect(page.getObservations()).resolves.toBe(2);
95+
// check again to ensure that we haven't triggered an infinite resize loop
96+
await expect(page.getObservations()).resolves.toBeLessThanOrEqual(3);
9797
})
9898
);
9999

0 commit comments

Comments
 (0)