From c06f2c37abc9c44abac1d6f78a9a7b129ad8fbd4 Mon Sep 17 00:00:00 2001 From: Brian Smith <112954497+brian-smith-tcril@users.noreply.github.com> Date: Wed, 2 Apr 2025 09:49:49 -0400 Subject: [PATCH] chore(deps): update `@openedx` dependencies to versions that support React 18 (#1656) --- package-lock.json | 159 +++++++++--------- package.json | 15 +- src/courseware/CoursewareContainer.test.jsx | 14 +- .../course/sequence/Sequence.test.jsx | 2 +- .../SequenceNavigationTabs.test.jsx | 4 + 5 files changed, 98 insertions(+), 96 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8a8e634a..76bffc29 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,20 +12,21 @@ "dependencies": { "@edx/brand": "npm:@openedx/brand-openedx@^1.2.2", "@edx/browserslist-config": "1.5.0", - "@edx/frontend-component-header": "^5.8.0", - "@edx/frontend-lib-learning-assistant": "^2.19.2", - "@edx/frontend-lib-special-exams": "^3.1.3", - "@edx/frontend-platform": "^8.0.0", + "@edx/frontend-component-footer": "^14.3.0", + "@edx/frontend-component-header": "^6.2.0", + "@edx/frontend-lib-learning-assistant": "^2.20.0", + "@edx/frontend-lib-special-exams": "^3.5.0", + "@edx/frontend-platform": "^8.3.1", "@edx/openedx-atlas": "^0.6.0", "@edx/react-unit-test-utils": "3.0.0", "@fortawesome/free-brands-svg-icons": "5.15.4", "@fortawesome/free-regular-svg-icons": "5.15.4", "@fortawesome/free-solid-svg-icons": "5.15.4", "@fortawesome/react-fontawesome": "^0.1.4", - "@openedx/frontend-build": "^14.2.0", - "@openedx/frontend-plugin-framework": "^1.2.1", + "@openedx/frontend-build": "^14.3.3", + "@openedx/frontend-plugin-framework": "^1.6.0", "@openedx/frontend-slot-footer": "^1.0.2", - "@openedx/paragon": "^22.3.0", + "@openedx/paragon": "^22.16.0", "@popperjs/core": "2.11.8", "@reduxjs/toolkit": "1.9.7", "buffer": "^6.0.3", @@ -2104,95 +2105,91 @@ } }, "node_modules/@edx/frontend-component-footer": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@edx/frontend-component-footer/-/frontend-component-footer-14.0.0.tgz", - "integrity": "sha512-3Riz6ippBnPz1oq6gZgFBx27bJkNL+rwwKrv0uCuHV/5MscS1aYeKx1ZAMuUsxkKcGX6uhyU6PwM6agvnhKfNQ==", - "peer": true, + "version": "14.3.0", + "resolved": "https://registry.npmjs.org/@edx/frontend-component-footer/-/frontend-component-footer-14.3.0.tgz", + "integrity": "sha512-domQOIsAf+b1YiQvpt245Cfz6OgrKKw3TJrDIFS+J70Mn98MpCGGg55mBraOzTfopsouzp5bN03F1PLkXyjnEQ==", + "license": "AGPL-3.0", "dependencies": { - "@fortawesome/fontawesome-svg-core": "6.5.2", - "@fortawesome/free-brands-svg-icons": "6.5.2", - "@fortawesome/free-regular-svg-icons": "6.5.2", - "@fortawesome/free-solid-svg-icons": "6.5.2", - "@fortawesome/react-fontawesome": "0.2.0", + "@fortawesome/fontawesome-svg-core": "6.7.2", + "@fortawesome/free-brands-svg-icons": "6.7.2", + "@fortawesome/free-regular-svg-icons": "6.7.2", + "@fortawesome/free-solid-svg-icons": "6.7.2", + "@fortawesome/react-fontawesome": "0.2.2", + "classnames": "^2.5.1", "jest-environment-jsdom": "^29.7.0", "lodash": "^4.17.21", "ts-jest": "^29.1.2" }, "peerDependencies": { "@edx/frontend-platform": "^7.0.0 || ^8.0.0", - "@openedx/paragon": ">= 21.11.3 < 23.0.0", + "@openedx/paragon": ">= 21.11.3 < 24.0.0", "prop-types": "^15.5.10", - "react": "^16.9.0 || ^17.0.0", - "react-dom": "^16.9.0 || ^17.0.0" + "react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.9.0 || ^17.0.0 || ^18.0.0" } }, "node_modules/@edx/frontend-component-footer/node_modules/@fortawesome/fontawesome-common-types": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.5.2.tgz", - "integrity": "sha512-gBxPg3aVO6J0kpfHNILc+NMhXnqHumFxOmjYCFfOiLZfwhnnfhtsdA2hfJlDnj+8PjAs6kKQPenOTKj3Rf7zHw==", - "hasInstallScript": true, - "peer": true, + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.7.2.tgz", + "integrity": "sha512-Zs+YeHUC5fkt7Mg1l6XTniei3k4bwG/yo3iFUtZWd/pMx9g3fdvkSK9E0FOC+++phXOka78uJcYb8JaFkW52Xg==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/@edx/frontend-component-footer/node_modules/@fortawesome/fontawesome-svg-core": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.5.2.tgz", - "integrity": "sha512-5CdaCBGl8Rh9ohNdxeeTMxIj8oc3KNBgIeLMvJosBMdslK/UnEB8rzyDRrbKdL1kDweqBPo4GT9wvnakHWucZw==", - "hasInstallScript": true, - "peer": true, + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.7.2.tgz", + "integrity": "sha512-yxtOBWDrdi5DD5o1pmVdq3WMCvnobT0LU6R8RyyVXPvFRd2o79/0NCuQoCjNTeZz9EzA9xS3JxNWfv54RIHFEA==", + "license": "MIT", "dependencies": { - "@fortawesome/fontawesome-common-types": "6.5.2" + "@fortawesome/fontawesome-common-types": "6.7.2" }, "engines": { "node": ">=6" } }, "node_modules/@edx/frontend-component-footer/node_modules/@fortawesome/free-brands-svg-icons": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.5.2.tgz", - "integrity": "sha512-zi5FNYdmKLnEc0jc0uuHH17kz/hfYTg4Uei0wMGzcoCL/4d3WM3u1VMc0iGGa31HuhV5i7ZK8ZlTCQrHqRHSGQ==", - "hasInstallScript": true, - "peer": true, + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.7.2.tgz", + "integrity": "sha512-zu0evbcRTgjKfrr77/2XX+bU+kuGfjm0LbajJHVIgBWNIDzrhpRxiCPNT8DW5AdmSsq7Mcf9D1bH0aSeSUSM+Q==", + "license": "(CC-BY-4.0 AND MIT)", "dependencies": { - "@fortawesome/fontawesome-common-types": "6.5.2" + "@fortawesome/fontawesome-common-types": "6.7.2" }, "engines": { "node": ">=6" } }, "node_modules/@edx/frontend-component-footer/node_modules/@fortawesome/free-regular-svg-icons": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.5.2.tgz", - "integrity": "sha512-iabw/f5f8Uy2nTRtJ13XZTS1O5+t+anvlamJ3zJGLEVE2pKsAWhPv2lq01uQlfgCX7VaveT3EVs515cCN9jRbw==", - "hasInstallScript": true, - "peer": true, + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.7.2.tgz", + "integrity": "sha512-7Z/ur0gvCMW8G93dXIQOkQqHo2M5HLhYrRVC0//fakJXxcF1VmMPsxnG6Ee8qEylA8b8Q3peQXWMNZ62lYF28g==", + "license": "(CC-BY-4.0 AND MIT)", "dependencies": { - "@fortawesome/fontawesome-common-types": "6.5.2" + "@fortawesome/fontawesome-common-types": "6.7.2" }, "engines": { "node": ">=6" } }, "node_modules/@edx/frontend-component-footer/node_modules/@fortawesome/free-solid-svg-icons": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.5.2.tgz", - "integrity": "sha512-QWFZYXFE7O1Gr1dTIp+D6UcFUF0qElOnZptpi7PBUMylJh+vFmIedVe1Ir6RM1t2tEQLLSV1k7bR4o92M+uqlw==", - "hasInstallScript": true, - "peer": true, + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.7.2.tgz", + "integrity": "sha512-GsBrnOzU8uj0LECDfD5zomZJIjrPhIlWU82AHwa2s40FKH+kcxQaBvBo3Z4TxyZHIyX8XTDxsyA33/Vx9eFuQA==", + "license": "(CC-BY-4.0 AND MIT)", "dependencies": { - "@fortawesome/fontawesome-common-types": "6.5.2" + "@fortawesome/fontawesome-common-types": "6.7.2" }, "engines": { "node": ">=6" } }, "node_modules/@edx/frontend-component-footer/node_modules/@fortawesome/react-fontawesome": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.0.tgz", - "integrity": "sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==", - "peer": true, + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.2.tgz", + "integrity": "sha512-EnkrprPNqI6SXJl//m29hpaNzOp1bruISWaOiRtkMi/xSvHJlzc2j2JAYS7egxt/EbjSNV/k6Xy0AQI6vB2+1g==", + "license": "MIT", "dependencies": { "prop-types": "^15.8.1" }, @@ -2202,9 +2199,9 @@ } }, "node_modules/@edx/frontend-component-header": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/@edx/frontend-component-header/-/frontend-component-header-5.8.3.tgz", - "integrity": "sha512-cPenGEirOE7sQwyjakK9Vy/oyvBy4gzhCkf5pxiYYuOhTe0uK/iLnnThJh7R0XdkGdxMMOvUBJVmV4TGC1BHJQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@edx/frontend-component-header/-/frontend-component-header-6.2.0.tgz", + "integrity": "sha512-rM/+NtvPAQk+RmAA/fhXnsneeta/CGi319Wei/or6aW7ETpSmMkfoYM4MKv+JPhF/vLMxqBzz6lwzefF9D62Lw==", "license": "AGPL-3.0", "dependencies": { "@fortawesome/fontawesome-svg-core": "6.6.0", @@ -2212,7 +2209,7 @@ "@fortawesome/free-regular-svg-icons": "6.6.0", "@fortawesome/free-solid-svg-icons": "6.6.0", "@fortawesome/react-fontawesome": "^0.2.0", - "@openedx/frontend-plugin-framework": "^1.3.0", + "@openedx/frontend-plugin-framework": "^1.6.0", "axios-mock-adapter": "1.22.0", "babel-polyfill": "6.26.0", "classnames": "^2.5.1", @@ -2222,10 +2219,10 @@ }, "peerDependencies": { "@edx/frontend-platform": "^7.0.0 || ^8.0.0", - "@openedx/paragon": ">= 21.5.7 < 23.0.0", + "@openedx/paragon": ">= 22.0.0 < 24.0.0", "prop-types": "^15.5.10", - "react": "^16.9.0 || ^17.0.0", - "react-dom": "^16.9.0 || ^17.0.0", + "react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.9.0 || ^17.0.0 || ^18.0.0", "react-router-dom": "^6.14.2" } }, @@ -2292,9 +2289,9 @@ } }, "node_modules/@edx/frontend-lib-learning-assistant": { - "version": "2.19.2", - "resolved": "https://registry.npmjs.org/@edx/frontend-lib-learning-assistant/-/frontend-lib-learning-assistant-2.19.2.tgz", - "integrity": "sha512-EF2JPEe0llJfw8GwDgFsBr+5VKuqwVGqCBAP0jhWuWnLnJ2KUJJ+oxm8t0Dlni8M59LiO8QlO52OilJ6+/5IJw==", + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/@edx/frontend-lib-learning-assistant/-/frontend-lib-learning-assistant-2.20.0.tgz", + "integrity": "sha512-9JAirB4b2Dx94aNM1HyNPRHkvprweqPkWCYgobbhWIADuU8fMFIBquwSg5eLmYVEXDBa5Atz5mjOwnb+wBC3kw==", "license": "AGPL-3.0", "dependencies": { "@edx/brand": "npm:@openedx/brand-openedx@^1.2.3", @@ -2309,8 +2306,8 @@ "@openedx/paragon": "^22", "@reduxjs/toolkit": "^1.8", "prop-types": "^15", - "react": "^17", - "react-dom": "^17", + "react": "^17 || ^18", + "react-dom": "^17 || ^18", "react-redux": "^7", "react-router": "^6", "react-router-dom": "^6", @@ -2318,9 +2315,9 @@ } }, "node_modules/@edx/frontend-lib-special-exams": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@edx/frontend-lib-special-exams/-/frontend-lib-special-exams-3.4.0.tgz", - "integrity": "sha512-IbzdTKVOpChtmeicgxu3GeJJMIg1HrNTUtul7fWLbP0gubges8DVWhVUaEtA1PAlN5sze/A0UkGR5FYFlrTQQQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@edx/frontend-lib-special-exams/-/frontend-lib-special-exams-3.5.0.tgz", + "integrity": "sha512-lRKD3K+XAuoKAaxbZxb7QLTWkSlV9yIy08XflYoHh/weClesVTETU3+NtJ5YRsC/kYHZrzSYIpMZnBnkKTGTww==", "license": "AGPL-3.0", "dependencies": { "@fortawesome/fontawesome-svg-core": "1.2.34", @@ -2336,8 +2333,8 @@ "@openedx/paragon": "^22.0.0 || ^23.0.0", "@reduxjs/toolkit": "^1.5.1", "prop-types": "^15.7.2", - "react": "^16.14.0 || ^17.0.0", - "react-dom": "^16.14.0 || ^17.0.0", + "react": "^16.14.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.14.0 || ^17.0.0 || ^18.0.0", "react-redux": "^7.1.3", "react-router": "^5.1.2 || ^6.0.0", "react-router-dom": "^5.1.2 || ^6.0.0", @@ -2417,15 +2414,15 @@ } }, "node_modules/@edx/frontend-platform": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/@edx/frontend-platform/-/frontend-platform-8.2.1.tgz", - "integrity": "sha512-Pid7feVSr81Kl+Oeuh5sZR2caDyCvOz191dmtSYFKKR5lAyOBetc14GMZ9s/TYneeiR0bCbzUIWSl17eRuZrJw==", + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/@edx/frontend-platform/-/frontend-platform-8.3.3.tgz", + "integrity": "sha512-xj8uKY4k9DgScYWsBFx8B1cngZ6HTPHvmd7W+NpBB4Kqw9yCT1OUii4p8/8khF68vb7hcTQuu13A9hM0lkE5bw==", "license": "AGPL-3.0", "dependencies": { "@cospired/i18n-iso-languages": "4.2.0", "@formatjs/intl-pluralrules": "4.3.3", "@formatjs/intl-relativetimeformat": "10.0.1", - "axios": "1.7.9", + "axios": "1.8.4", "axios-cache-interceptor": "1.6.2", "form-urlencoded": "4.1.4", "glob": "7.2.3", @@ -2448,7 +2445,7 @@ }, "peerDependencies": { "@openedx/frontend-build": ">= 14.0.0", - "@openedx/paragon": ">= 21.5.7 < 23.0.0", + "@openedx/paragon": ">= 21.5.7 < 24.0.0", "prop-types": ">=15.7.2 <16.0.0", "react": "^16.9.0 || ^17.0.0 || ^18.0.0", "react-dom": "^16.9.0 || ^17.0.0 || ^18.0.0", @@ -3945,9 +3942,9 @@ } }, "node_modules/@openedx/frontend-plugin-framework": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@openedx/frontend-plugin-framework/-/frontend-plugin-framework-1.5.0.tgz", - "integrity": "sha512-+sZeyEA/AwoiRGQFvMUuUMD8i63p1LMgUo93sUg7OylMyMaaAnqLGR8QwsJ3CNRfPDBobPBcWPBY1C81VfDlXQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@openedx/frontend-plugin-framework/-/frontend-plugin-framework-1.6.0.tgz", + "integrity": "sha512-zgP+/hs/cvcPmFOgVm2xt/qgX1nheNsfipzCO7I3bON4hHyOhmOyzwFZJ7pz7GzCJwKlMVguh3HcJgf4p/BPKQ==", "license": "AGPL-3.0", "dependencies": { "@edx/brand": "npm:@openedx/brand-openedx@^1.2.2", @@ -3958,7 +3955,7 @@ }, "peerDependencies": { "@edx/frontend-platform": "^7.0.0 || ^8.0.0", - "@openedx/paragon": "^21.0.0 || ^22.0.0", + "@openedx/paragon": "^21.0.0 || ^22.0.0 || ^23.0.0", "prop-types": "^15.8.0", "react": "^17.0.0 || ^18.0.0", "react-dom": "^17.0.0 || ^18.0.0", @@ -6745,9 +6742,9 @@ } }, "node_modules/axios": { - "version": "1.7.9", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", - "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.4.tgz", + "integrity": "sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==", "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", diff --git a/package.json b/package.json index e3c46b4a..bedcb7c6 100644 --- a/package.json +++ b/package.json @@ -35,20 +35,21 @@ "dependencies": { "@edx/brand": "npm:@openedx/brand-openedx@^1.2.2", "@edx/browserslist-config": "1.5.0", - "@edx/frontend-component-header": "^5.8.0", - "@edx/frontend-lib-learning-assistant": "^2.19.2", - "@edx/frontend-lib-special-exams": "^3.1.3", - "@edx/frontend-platform": "^8.0.0", + "@edx/frontend-component-footer": "^14.3.0", + "@edx/frontend-component-header": "^6.2.0", + "@edx/frontend-lib-learning-assistant": "^2.20.0", + "@edx/frontend-lib-special-exams": "^3.5.0", + "@edx/frontend-platform": "^8.3.1", "@edx/openedx-atlas": "^0.6.0", "@edx/react-unit-test-utils": "3.0.0", "@fortawesome/free-brands-svg-icons": "5.15.4", "@fortawesome/free-regular-svg-icons": "5.15.4", "@fortawesome/free-solid-svg-icons": "5.15.4", "@fortawesome/react-fontawesome": "^0.1.4", - "@openedx/frontend-build": "^14.2.0", - "@openedx/frontend-plugin-framework": "^1.2.1", + "@openedx/frontend-build": "^14.3.3", + "@openedx/frontend-plugin-framework": "^1.6.0", "@openedx/frontend-slot-footer": "^1.0.2", - "@openedx/paragon": "^22.3.0", + "@openedx/paragon": "^22.16.0", "@popperjs/core": "2.11.8", "@reduxjs/toolkit": "1.9.7", "buffer": "^6.0.3", diff --git a/src/courseware/CoursewareContainer.test.jsx b/src/courseware/CoursewareContainer.test.jsx index b1012746..58b26a48 100644 --- a/src/courseware/CoursewareContainer.test.jsx +++ b/src/courseware/CoursewareContainer.test.jsx @@ -221,7 +221,7 @@ describe('CoursewareContainer', () => { }); history.push(`/course/${courseId}`); - const container = await waitFor(() => loadContainer()); + const container = await loadContainer(); assertLoadedHeader(container); assertSequenceNavigation(container); @@ -244,7 +244,7 @@ describe('CoursewareContainer', () => { axiosMock.onGet(`${getConfig().LMS_BASE_URL}/api/courseware/resume/${courseId}`).reply(200, {}); history.push(`/course/${courseId}`); - const container = await waitFor(() => loadContainer()); + const container = await loadContainer(); assertLoadedHeader(container); assertSequenceNavigation(container); @@ -294,7 +294,7 @@ describe('CoursewareContainer', () => { describe('when the URL does not contain a unit ID', () => { it('should choose a unit within the section\'s first sequence', async () => { setUrl(sectionTree[1].id); - const container = await waitFor(() => loadContainer()); + const container = await loadContainer(); assertLoadedHeader(container); assertSequenceNavigation(container, 2); assertLocation(container, sequenceTree[1][0].id, unitTree[1][0][0].id); @@ -369,7 +369,7 @@ describe('CoursewareContainer', () => { it('should pick the first unit if position was not defined (activeUnitIndex becomes 0)', async () => { history.push(`/course/${courseId}/${sequenceBlock.id}`); - const container = await waitFor(() => loadContainer()); + const container = await loadContainer(); assertLoadedHeader(container); assertSequenceNavigation(container); @@ -388,7 +388,7 @@ describe('CoursewareContainer', () => { setUpMockRequests({ sequenceMetadatas: [sequenceMetadata] }); history.push(`/course/${courseId}/${sequenceBlock.id}`); - const container = await waitFor(() => loadContainer()); + const container = await loadContainer(); assertLoadedHeader(container); assertSequenceNavigation(container); @@ -405,7 +405,7 @@ describe('CoursewareContainer', () => { it('should load the specified unit', async () => { history.push(`/course/${courseId}/${sequenceBlock.id}/${unitBlocks[2].id}`); - const container = await waitFor(() => loadContainer()); + const container = await loadContainer(); assertLoadedHeader(container); assertSequenceNavigation(container); @@ -421,7 +421,7 @@ describe('CoursewareContainer', () => { }); history.push(`/course/${courseId}/${sequenceBlock.id}/${unitBlocks[0].id}`); - const container = await waitFor(() => loadContainer()); + const container = await loadContainer(); const sequenceNavButtons = container.querySelectorAll('nav.sequence-navigation a, nav.sequence-navigation button'); const sequenceNextButton = sequenceNavButtons[4]; diff --git a/src/courseware/course/sequence/Sequence.test.jsx b/src/courseware/course/sequence/Sequence.test.jsx index 4661ce04..5473e24c 100644 --- a/src/courseware/course/sequence/Sequence.test.jsx +++ b/src/courseware/course/sequence/Sequence.test.jsx @@ -154,7 +154,7 @@ describe('Sequence', () => { testStore.dispatch(fetchSequenceFailure({ sequenceId: mockData.sequenceId })); render(, { store: testStore, wrapWithRouter: true }); - expect(screen.getByText('There was an error loading this course.')).toBeInTheDocument(); + await screen.findByText('There was an error loading this course.'); }); it('handles loading unit', async () => { diff --git a/src/courseware/course/sequence/sequence-navigation/SequenceNavigationTabs.test.jsx b/src/courseware/course/sequence/sequence-navigation/SequenceNavigationTabs.test.jsx index b35b33c7..cbbbcf50 100644 --- a/src/courseware/course/sequence/sequence-navigation/SequenceNavigationTabs.test.jsx +++ b/src/courseware/course/sequence/sequence-navigation/SequenceNavigationTabs.test.jsx @@ -51,6 +51,10 @@ describe('Sequence Navigation Tabs', () => { await act(async () => { useIndexOfLastVisibleChild.mockReturnValue([-1, null, null]); const booyah = render(, { wrapWithRouter: true }); + + // wait for links to appear so we aren't testing an empty div + await screen.findAllByRole('link'); + container = booyah.container; const dropdownToggle = container.querySelector('.dropdown-toggle');