From 34519a3d0829c41ea87f60c581f5a4d3f817ae15 Mon Sep 17 00:00:00 2001 From: Diana Olarte Date: Wed, 24 Sep 2025 20:56:34 +1000 Subject: [PATCH] test: add testing-library user event , utils and update path resolver --- jest.config.js | 3 +++ package-lock.json | 15 +++++++++++++++ package.json | 11 ++++++----- src/setupTest.jsx | 34 ++++++++++++++++++++++++++++++---- 4 files changed, 54 insertions(+), 9 deletions(-) diff --git a/jest.config.js b/jest.config.js index 5eb885d..5d3f71e 100644 --- a/jest.config.js +++ b/jest.config.js @@ -6,6 +6,9 @@ module.exports = createConfig('jest', { setupFilesAfterEnv: [ '/src/setupTest.jsx', ], + moduleNameMapper: { + '^@src/(.*)$': '/src/$1', + }, coveragePathIgnorePatterns: [ 'src/setupTest.jsx', 'src/i18n', diff --git a/package-lock.json b/package-lock.json index d5a6a29..32b7331 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,6 +27,7 @@ "@testing-library/dom": "^10.4.1", "@testing-library/jest-dom": "^6.6.4", "@testing-library/react": "^16.3.0", + "@testing-library/user-event": "^14.6.1", "@types/react": "^18", "@types/react-dom": "^18" } @@ -8002,6 +8003,20 @@ } } }, + "node_modules/@testing-library/user-event": { + "version": "14.6.1", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.1.tgz", + "integrity": "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, "node_modules/@tokens-studio/sd-transforms": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@tokens-studio/sd-transforms/-/sd-transforms-1.3.0.tgz", diff --git a/package.json b/package.json index f761ac6..5223eb4 100644 --- a/package.json +++ b/package.json @@ -37,10 +37,10 @@ }, "dependencies": { "@edx/brand": "npm:@openedx/brand-openedx@^1.2.2", - "@openedx/frontend-plugin-framework": "^1.7.0", "@edx/frontend-component-header": "^6.4.0", "@edx/frontend-platform": "^8.3.0", "@edx/openedx-atlas": "^0.7.0", + "@openedx/frontend-plugin-framework": "^1.7.0", "@openedx/paragon": "^23.4.5", "@tanstack/react-query": "5.89.0", "react": "^18.3.1", @@ -49,12 +49,13 @@ }, "devDependencies": { "@edx/browserslist-config": "^1.1.1", - "@openedx/frontend-build": "14.6.2", "@edx/typescript-config": "1.1.0", - "@types/react": "^18", - "@types/react-dom": "^18", + "@openedx/frontend-build": "14.6.2", "@testing-library/dom": "^10.4.1", "@testing-library/jest-dom": "^6.6.4", - "@testing-library/react": "^16.3.0" + "@testing-library/react": "^16.3.0", + "@testing-library/user-event": "^14.6.1", + "@types/react": "^18", + "@types/react-dom": "^18" } } diff --git a/src/setupTest.jsx b/src/setupTest.jsx index 3da246c..a944cc8 100644 --- a/src/setupTest.jsx +++ b/src/setupTest.jsx @@ -1,10 +1,36 @@ /* eslint-disable import/no-extraneous-dependencies */ import '@testing-library/jest-dom'; import { render } from '@testing-library/react'; -import { AppProvider } from '@edx/frontend-platform/react'; +import { BrowserRouter } from 'react-router-dom'; +import { AppContext } from '@edx/frontend-platform/react'; +import { IntlProvider } from '@edx/frontend-platform/i18n'; + +const mockAppContext = { + authenticatedUser: { + username: 'testuser', + email: 'testuser@example.com', + }, + config: { + ...process.env, + }, +}; export const renderWrapper = (children) => render( - - {children} - , + + + + {children} + + + , ); + +class ResizeObserver { + observe() {} + + unobserve() {} + + disconnect() {} +} + +global.ResizeObserver = ResizeObserver;