From 4e8648b23cfa6889920b15ebe0fab8e5d40e7304 Mon Sep 17 00:00:00 2001 From: "Omar H." Date: Wed, 2 Sep 2026 15:26:17 -0400 Subject: [PATCH 1/3] fix manage-versions eslint config and flaky test --- .../ManageVersions/ManageVersions.test.tsx | 15 ++++++++++----- .../modules/manage-versions/src/tsconfig.json | 9 +++++++++ .../modules/manage-versions/tsconfig.eslint.json | 1 + .../modules/manage-versions/tsconfig.test.json | 11 +++++++++++ 4 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 packages/modules/manage-versions/src/tsconfig.json create mode 100644 packages/modules/manage-versions/tsconfig.test.json diff --git a/packages/modules/manage-versions/src/components/ManageVersions/ManageVersions.test.tsx b/packages/modules/manage-versions/src/components/ManageVersions/ManageVersions.test.tsx index 90a82051..28ae8d70 100644 --- a/packages/modules/manage-versions/src/components/ManageVersions/ManageVersions.test.tsx +++ b/packages/modules/manage-versions/src/components/ManageVersions/ManageVersions.test.tsx @@ -71,14 +71,19 @@ describe("ManageVersions", () => { it("should show versions table with data", async () => { const { container } = renderComponent(); - await waitFor(() => - expect(container.querySelector(".iac-versions-table-body")).toBeVisible() - ); + // Wait for at least one virtualized row to actually be mounted, not just + // for the table body wrapper to appear. The virtualizer measures the + // container and mounts visible rows in a later render pass, so asserting + // on the wrapper alone is a race that can flake on slower CI runners. + await waitFor(() => { + const rows = container.querySelectorAll( + ".iac-versions-table-body [role='row']" + ); + expect(rows.length).toBeGreaterThanOrEqual(1); + }); const versionRows = container.querySelectorAll( ".iac-versions-table-body [role='row']" ); - // Virtualization renders only visible rows - expect(versionRows.length).toBeGreaterThanOrEqual(1); // Check that at least the first visible row has the expected structure const firstRow = versionRows[0]; diff --git a/packages/modules/manage-versions/src/tsconfig.json b/packages/modules/manage-versions/src/tsconfig.json new file mode 100644 index 00000000..dd4d57b0 --- /dev/null +++ b/packages/modules/manage-versions/src/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../tsconfig.test.json", + "compilerOptions": { + "noEmit": true, + "types": ["jest"], + "module": "node16" + }, + "include": ["./**/*.test.ts", "./**/*.test.tsx", "./**/*.d.ts"] +} \ No newline at end of file diff --git a/packages/modules/manage-versions/tsconfig.eslint.json b/packages/modules/manage-versions/tsconfig.eslint.json index b936dace..38f6b814 100644 --- a/packages/modules/manage-versions/tsconfig.eslint.json +++ b/packages/modules/manage-versions/tsconfig.eslint.json @@ -5,4 +5,5 @@ "**/*.js*", "**/.*.js*" ], + "exclude": ["cjs/**/*", "esm/**/*"] } \ No newline at end of file diff --git a/packages/modules/manage-versions/tsconfig.test.json b/packages/modules/manage-versions/tsconfig.test.json new file mode 100644 index 00000000..466eb0a9 --- /dev/null +++ b/packages/modules/manage-versions/tsconfig.test.json @@ -0,0 +1,11 @@ +{ + "extends": "../../../tsconfig.base.json", + "compilerOptions": { + "module": "CommonJS", + "moduleResolution": "Node16", + "types": ["jest", "node"], + "rootDir": "./src", + "outDir": "./esm" + }, + "include": ["./src/**/*.ts*"] +} From 207bba097ea98a02903a7a96075ae5ea14ad7e2b Mon Sep 17 00:00:00 2001 From: "Omar H." Date: Wed, 2 Sep 2026 15:32:50 -0400 Subject: [PATCH 2/3] Add manage-versions-react change log entry for flaky test fix --- ...ar-manage-versions-eslint-fix_2026-09-02-19-32.json | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 common/changes/@itwin/manage-versions-react/omar-manage-versions-eslint-fix_2026-09-02-19-32.json diff --git a/common/changes/@itwin/manage-versions-react/omar-manage-versions-eslint-fix_2026-09-02-19-32.json b/common/changes/@itwin/manage-versions-react/omar-manage-versions-eslint-fix_2026-09-02-19-32.json new file mode 100644 index 00000000..58093295 --- /dev/null +++ b/common/changes/@itwin/manage-versions-react/omar-manage-versions-eslint-fix_2026-09-02-19-32.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@itwin/manage-versions-react", + "comment": "Fix flaky test", + "type": "none" + } + ], + "packageName": "@itwin/manage-versions-react" +} \ No newline at end of file From c327cf7ef2d99b8db9b3be64b05392b85950575e Mon Sep 17 00:00:00 2001 From: "Omar H." Date: Wed, 2 Sep 2026 19:57:55 -0400 Subject: [PATCH 3/3] fix: update module and moduleResolution to nodenext in tsconfig files --- packages/modules/manage-versions/src/tsconfig.json | 2 +- packages/modules/manage-versions/tsconfig.test.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/modules/manage-versions/src/tsconfig.json b/packages/modules/manage-versions/src/tsconfig.json index dd4d57b0..7f998bc8 100644 --- a/packages/modules/manage-versions/src/tsconfig.json +++ b/packages/modules/manage-versions/src/tsconfig.json @@ -3,7 +3,7 @@ "compilerOptions": { "noEmit": true, "types": ["jest"], - "module": "node16" + "module": "nodenext" }, "include": ["./**/*.test.ts", "./**/*.test.tsx", "./**/*.d.ts"] } \ No newline at end of file diff --git a/packages/modules/manage-versions/tsconfig.test.json b/packages/modules/manage-versions/tsconfig.test.json index 466eb0a9..53cf389a 100644 --- a/packages/modules/manage-versions/tsconfig.test.json +++ b/packages/modules/manage-versions/tsconfig.test.json @@ -2,7 +2,7 @@ "extends": "../../../tsconfig.base.json", "compilerOptions": { "module": "CommonJS", - "moduleResolution": "Node16", + "moduleResolution": "nodenext", "types": ["jest", "node"], "rootDir": "./src", "outDir": "./esm"