From 319e4918c0778957be190caba636d93cc36016fa Mon Sep 17 00:00:00 2001 From: rose191919 Date: Sat, 4 Oct 2025 18:02:09 -0400 Subject: [PATCH 1/5] Added a few tests on frontend --- code/frontend/package-lock.json | 8 +-- code/frontend/package.json | 5 +- code/frontend/src/tests/Aside.tdd.test.tsx | 50 +++++++++++++++++ code/frontend/src/tests/Field.tdd.test.tsx | 30 +++++++++++ .../src/tests/MyJobsButton.tdd.test.tsx | 16 ++++++ .../src/tests/RegisterForm.tdd.test.tsx | 54 +++++++++++++++++++ code/frontend/src/tests/setupTests.ts | 36 +++++++++++++ .../src/tests/validation.tdd.test.tsx | 24 +++++++++ 8 files changed, 217 insertions(+), 6 deletions(-) create mode 100644 code/frontend/src/tests/Aside.tdd.test.tsx create mode 100644 code/frontend/src/tests/Field.tdd.test.tsx create mode 100644 code/frontend/src/tests/MyJobsButton.tdd.test.tsx create mode 100644 code/frontend/src/tests/RegisterForm.tdd.test.tsx create mode 100644 code/frontend/src/tests/validation.tdd.test.tsx diff --git a/code/frontend/package-lock.json b/code/frontend/package-lock.json index 7fa68b8..3ccfaf8 100644 --- a/code/frontend/package-lock.json +++ b/code/frontend/package-lock.json @@ -16,7 +16,7 @@ }, "devDependencies": { "@eslint/js": "^9.33.0", - "@testing-library/jest-dom": "^6.8.0", + "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^14.6.1", "@types/jest": "^30.0.0", @@ -2669,9 +2669,9 @@ "peer": true }, "node_modules/@testing-library/jest-dom": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.8.0.tgz", - "integrity": "sha512-WgXcWzVM6idy5JaftTVC8Vs83NKRmGJz4Hqs4oyOuO2J4r/y79vvKZsb+CaGyCSEbUPI6OsewfPd0G1A0/TUZQ==", + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", + "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==", "dev": true, "license": "MIT", "dependencies": { diff --git a/code/frontend/package.json b/code/frontend/package.json index 328cab6..e9bcf09 100644 --- a/code/frontend/package.json +++ b/code/frontend/package.json @@ -8,7 +8,8 @@ "build": "tsc -b && vite build", "lint": "eslint .", "preview": "vite preview", - "test": "jest" + "test": "jest", + "test:ci": "jest --ci --runInBand" }, "dependencies": { "bootstrap": "^5.3.8", @@ -19,7 +20,7 @@ }, "devDependencies": { "@eslint/js": "^9.33.0", - "@testing-library/jest-dom": "^6.8.0", + "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^14.6.1", "@types/jest": "^30.0.0", diff --git a/code/frontend/src/tests/Aside.tdd.test.tsx b/code/frontend/src/tests/Aside.tdd.test.tsx new file mode 100644 index 0000000..56dfe65 --- /dev/null +++ b/code/frontend/src/tests/Aside.tdd.test.tsx @@ -0,0 +1,50 @@ +import { render, screen, fireEvent } from '@testing-library/react'; +import '@testing-library/jest-dom'; +import Aside from '../components/asideAndToggler/Aside'; +import { MemoryRouter } from 'react-router-dom'; +import { ThemeProvider } from '../theme/ThemeContext'; + +/* +AI-generated code: 70% (tool: ChatGPT, adapted; functions: jest.mock usage and test case scaffolding; AI chat links: [https://chatgpt.com/share/68e18e34-9110-8006-b694-a6dadf0cafd5]) +Human code (James): 25% (test logic, expectations, and navigation assertions) +Framework-generated code: 5% (React Testing Library, Jest DOM APIs) +*/ + +// Mock navigate so we can assert where it goes +const mockNavigate = jest.fn(); +jest.mock('react-router-dom', () => { + const actual = jest.requireActual('react-router-dom'); + return { + ...actual, + useNavigate: () => mockNavigate + }; +}); + + +test('shows "My Jobs" on non-MyJobs routes and navigates to /myJobs', () => { + render( + + +