Skip to content

Commit 2efddc9

Browse files
committed
Merge branch 'ax/scrum-123-add-unit-testing' of https://github.com/UTSC-CSCC01-Software-Engineering-I/term-group-project-c01w25-project-course-matrix into ax/scrum-123-add-unit-testing
2 parents 835a5b9 + a76d042 commit 2efddc9

File tree

8 files changed

+133
-115
lines changed

8 files changed

+133
-115
lines changed

course-matrix/frontend/__tests__/UserMenu.test.tsx

Lines changed: 71 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -10,84 +10,86 @@ const mockStore = configureStore([]);
1010
const store = mockStore({});
1111

1212
describe("UserMenu Component", () => {
13-
beforeEach(() => {
14-
localStorage.setItem(
15-
"userInfo",
16-
JSON.stringify({
17-
user: {
18-
id: "123",
19-
user_metadata: {
20-
username: "John Doe",
21-
22-
},
23-
},
24-
})
25-
);
26-
});
13+
beforeEach(() => {
14+
localStorage.setItem(
15+
"userInfo",
16+
JSON.stringify({
17+
user: {
18+
id: "123",
19+
user_metadata: {
20+
username: "John Doe",
21+
22+
},
23+
},
24+
}),
25+
);
26+
});
2727

28-
afterEach(() => {
29-
localStorage.clear();
30-
});
28+
afterEach(() => {
29+
localStorage.clear();
30+
});
3131

32-
test("renders user menu with username and avatar", () => {
33-
render(
34-
<Provider store={store}>
35-
<Router>
36-
<UserMenu />
37-
</Router>
38-
</Provider>
39-
);
32+
test("renders user menu with username and avatar", () => {
33+
render(
34+
<Provider store={store}>
35+
<Router>
36+
<UserMenu />
37+
</Router>
38+
</Provider>,
39+
);
4040

41-
expect(screen.getByText("John Doe")).toBeInTheDocument();
42-
expect(screen.getByText("JD")).toBeInTheDocument();
43-
});
41+
expect(screen.getByText("John Doe")).toBeInTheDocument();
42+
expect(screen.getByText("JD")).toBeInTheDocument();
43+
});
4444

45-
test("opens edit account dialog", () => {
46-
render(
47-
<Provider store={store}>
48-
<Router>
49-
<UserMenu />
50-
</Router>
51-
</Provider>
52-
);
45+
test("opens edit account dialog", () => {
46+
render(
47+
<Provider store={store}>
48+
<Router>
49+
<UserMenu />
50+
</Router>
51+
</Provider>,
52+
);
5353

54-
fireEvent.click(screen.getByText("John Doe"));
55-
fireEvent.click(screen.getByText("Edit Account"));
54+
fireEvent.click(screen.getByText("John Doe"));
55+
fireEvent.click(screen.getByText("Edit Account"));
5656

57-
expect(screen.getByText("Edit Account")).toBeInTheDocument();
58-
expect(screen.getByLabelText("New User Name")).toBeInTheDocument();
59-
});
57+
expect(screen.getByText("Edit Account")).toBeInTheDocument();
58+
expect(screen.getByLabelText("New User Name")).toBeInTheDocument();
59+
});
6060

61-
test("opens delete account dialog", () => {
62-
render(
63-
<Provider store={store}>
64-
<Router>
65-
<UserMenu />
66-
</Router>
67-
</Provider>
68-
);
61+
test("opens delete account dialog", () => {
62+
render(
63+
<Provider store={store}>
64+
<Router>
65+
<UserMenu />
66+
</Router>
67+
</Provider>,
68+
);
6969

70-
fireEvent.click(screen.getByText("John Doe"));
71-
fireEvent.click(screen.getByText("Delete Account"));
70+
fireEvent.click(screen.getByText("John Doe"));
71+
fireEvent.click(screen.getByText("Delete Account"));
7272

73-
expect(screen.getByText("Delete Account")).toBeInTheDocument();
74-
expect(
75-
screen.getByText("Are you sure you want to delete your account? This action cannot be undone.")
76-
).toBeInTheDocument();
77-
});
73+
expect(screen.getByText("Delete Account")).toBeInTheDocument();
74+
expect(
75+
screen.getByText(
76+
"Are you sure you want to delete your account? This action cannot be undone.",
77+
),
78+
).toBeInTheDocument();
79+
});
7880

79-
test("logs out user", () => {
80-
render(
81-
<Provider store={store}>
82-
<Router>
83-
<UserMenu />
84-
</Router>
85-
</Provider>
86-
);
81+
test("logs out user", () => {
82+
render(
83+
<Provider store={store}>
84+
<Router>
85+
<UserMenu />
86+
</Router>
87+
</Provider>,
88+
);
8789

88-
fireEvent.click(screen.getByText("John Doe"));
89-
fireEvent.click(screen.getByText("Logout"));
90+
fireEvent.click(screen.getByText("John Doe"));
91+
fireEvent.click(screen.getByText("Logout"));
9092

91-
// Add assertions to check if the user is logged out
92-
});
93-
});
93+
// Add assertions to check if the user is logged out
94+
});
95+
});
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import {sum} from '../src/index'
2-
import { describe, test, expect } from "@jest/globals"
1+
import { sum } from "../src/index";
2+
import { describe, test, expect } from "@jest/globals";
33

4-
describe('Sum function', () =>{
5-
test('Returns correct value', () =>{
6-
expect(sum(2, 3)).toEqual(5)
7-
})
8-
})
4+
describe("Sum function", () => {
5+
test("Returns correct value", () => {
6+
expect(sum(2, 3)).toEqual(5);
7+
});
8+
});
Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,25 @@
1-
import type { Config } from 'jest';
1+
import type { Config } from "jest";
22

33
const config: Config = {
4-
preset: 'ts-jest',
4+
preset: "ts-jest",
55
moduleNameMapper: {
6-
'\\.(css|scss)$': 'identity-obj-proxy',
7-
"^.+\\.svg": "<rootDir>/tests/mocks/svgMock.tsx"
6+
"\\.(css|scss)$": "identity-obj-proxy",
7+
"^.+\\.svg": "<rootDir>/tests/mocks/svgMock.tsx",
88
},
99
// to obtain access to the matchers.
10-
setupFilesAfterEnv: ['<rootDir>/tests/setupTests.ts'],
11-
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
12-
modulePaths: ['<rootDir>'],
13-
testEnvironment: 'jsdom',
10+
setupFilesAfterEnv: ["<rootDir>/tests/setupTests.ts"],
11+
moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
12+
modulePaths: ["<rootDir>"],
13+
testEnvironment: "jsdom",
1414
transform: {
15-
'^.+\\.(ts|tsx)$': ['ts-jest', {
16-
tsconfig: 'tsconfig.test.json',
17-
}],
18-
'^.+\\.(js|jsx)$': 'babel-jest',
15+
"^.+\\.(ts|tsx)$": [
16+
"ts-jest",
17+
{
18+
tsconfig: "tsconfig.test.json",
19+
},
20+
],
21+
"^.+\\.(js|jsx)$": "babel-jest",
1922
},
2023
};
2124

22-
export default config;
25+
export default config;
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
export const sum = (num1: number, num2: number): number => {
2-
return num1 + num2;
3-
}
2+
return num1 + num2;
3+
};
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
export default "SvgrURL";
2-
export const ReactComponent = "div";
2+
export const ReactComponent = "div";
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
import '@testing-library/jest-dom';
1+
import "@testing-library/jest-dom";
Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,20 @@
11
{
22
"compilerOptions": {
3-
"target": "ESNext",
4-
"module": "ESNext",
5-
"moduleResolution": "node",
6-
"esModuleInterop": true,
7-
"skipLibCheck": true,
8-
"strict": true,
9-
"jsx": "react-jsx",
10-
"types": ["jest", "@testing-library/jest-dom"]
3+
"target": "ESNext",
4+
"module": "ESNext",
5+
"moduleResolution": "node",
6+
"esModuleInterop": true,
7+
"skipLibCheck": true,
8+
"strict": true,
9+
"jsx": "react-jsx",
10+
"types": ["jest", "@testing-library/jest-dom"]
1111
},
12-
"include": ["**/*.test.tsx", "**/*.test.ts", "./jest.config.ts", "tests", "src", "__tests__"]
13-
}
12+
"include": [
13+
"**/*.test.tsx",
14+
"**/*.test.ts",
15+
"./jest.config.ts",
16+
"tests",
17+
"src",
18+
"__tests__"
19+
]
20+
}
Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,19 @@
11
{
2-
"compilerOptions": {
3-
"target": "ESNext",
4-
"module": "ESNext",
5-
"moduleResolution": "node",
6-
"esModuleInterop": true,
7-
"skipLibCheck": true,
8-
"strict": true,
9-
"jsx": "react-jsx",
10-
"types": ["jest", "@testing-library/jest-dom"]
11-
},
12-
"include": ["**/*.test.tsx", "**/*.test.ts", "./jest.config.ts", "tests", "src"]
13-
}
2+
"compilerOptions": {
3+
"target": "ESNext",
4+
"module": "ESNext",
5+
"moduleResolution": "node",
6+
"esModuleInterop": true,
7+
"skipLibCheck": true,
8+
"strict": true,
9+
"jsx": "react-jsx",
10+
"types": ["jest", "@testing-library/jest-dom"]
11+
},
12+
"include": [
13+
"**/*.test.tsx",
14+
"**/*.test.ts",
15+
"./jest.config.ts",
16+
"tests",
17+
"src"
18+
]
19+
}

0 commit comments

Comments
 (0)