Skip to content

Commit 5f4d4c8

Browse files
committed
fixed tests
1 parent ddff22c commit 5f4d4c8

File tree

4 files changed

+90
-88
lines changed

4 files changed

+90
-88
lines changed

src/components/Calendar.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import 'react-datepicker/dist/react-datepicker.css';
99
import ReactTooltip from 'react-tooltip';
1010
import useDocumentTitle from '../hook/useDocumentTitle';
1111
import { useLazyQuery, useMutation } from '@apollo/client';
12-
import { ADD_EVENT, GET_EVENTS, EDIT_EVENT, GET_EVENT, CANCEL_EVENT } from '../Mutations/event';
12+
import { ADD_EVENT, GET_EVENTS, EDIT_EVENT, CANCEL_EVENT } from '../Mutations/event';
1313
import moment from 'moment';
1414
import { toast } from 'react-toastify';
1515
import EventGuestList from './EventGuestList';
@@ -27,7 +27,7 @@ const Calendar = () => {
2727
timeToStart: '',
2828
timeToEnd: '',
2929
});
30-
30+
3131
const [getEvents, { loading, data }] = useLazyQuery(GET_EVENTS);
3232
const [createEvent] = useMutation(ADD_EVENT);
3333

@@ -39,14 +39,15 @@ const Calendar = () => {
3939
const fetchData = async () => {
4040
/* istanbul ignore next */
4141
try {
42+
console.log("Hello")
4243
await getEvents({
4344
variables: {
4445
authToken: localStorage.getItem('auth_token'),
4546
},
4647
fetchPolicy: 'network-only',
4748
});
4849
} catch (error: any) {
49-
toast.error(error?.message)
50+
toast.error(error.message)
5051
}
5152
};
5253

src/components/tests/Calendar.test.tsx

Lines changed: 55 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,48 @@
11
import "@testing-library/jest-dom"
2-
import { fireEvent, screen, render, waitFor} from '@testing-library/react';
2+
import { fireEvent, screen, render, waitFor, cleanup} from '@testing-library/react';
33
import React from 'react';
44
import Calendar from '../Calendar';
5-
import { MockedProvider, wait } from "@apollo/client/testing";
5+
import { MockedProvider, MockedResponse } from "@apollo/client/testing";
66
import { toast } from "react-toastify";
7-
import { GET_EVENTS, GET_EVENT, ADD_EVENT, EDIT_EVENT, CANCEL_EVENT } from "../../Mutations/event";
7+
import { GET_EVENTS, ADD_EVENT, EDIT_EVENT, CANCEL_EVENT } from "../../Mutations/event";
88

9-
const getEventsMock = {
9+
const getEventsMock: MockedResponse = {
1010
request: {
1111
query: GET_EVENTS,
1212
variables: {
13-
authToken: "mocked_auth_token"
14-
}
15-
},
16-
result: {
17-
data: {
18-
getEvents: [
19-
{
20-
id: "1",
21-
user: "1",
22-
end: "2024-09-12T00:00:00.000Z",
23-
hostName: "Jack",
24-
start: "2024-09-12T00:00:00.000Z",
25-
timeToEnd: "10:00",
26-
timeToStart: "09:00",
27-
title: "Mock Event",
28-
invitees: [
29-
{
30-
31-
},
32-
{
33-
34-
}
35-
]
36-
},
37-
{
38-
id: "2",
39-
user: "1",
40-
end: "2024-09-12T00:00:00.000Z",
41-
hostName: "Musoni",
42-
start: "2024-09-12T00:00:00.000Z",
43-
timeToEnd: "10:00",
44-
timeToStart: "09:00",
45-
title: "Next Event",
46-
invitees: [
47-
{
48-
49-
},
50-
{
51-
52-
}
53-
]
54-
}
55-
]
13+
authToken: 'mocked_auth_token'
5614
}
5715
},
16+
result:{
17+
data:{
18+
getEvents:[
19+
{
20+
id: "1",
21+
user: "1",
22+
end: "2024-10-02T00:00:00.000Z",
23+
hostName: "Jack",
24+
start: "2024-10-02T00:00:00.000Z",
25+
timeToEnd: "03:00",
26+
timeToStart: "04:00",
27+
title: "Mocked Event",
28+
invitees: [{email: "[email protected]"},{email: "[email protected]"}]
29+
},
30+
{
31+
id: "2",
32+
user: "1",
33+
end: "2024-10-02T00:00:00.000Z",
34+
hostName: "Jones",
35+
start: "2024-10-02T00:00:00.000Z",
36+
timeToEnd: "03:00",
37+
timeToStart: "04:00",
38+
title: "Another Mocked Event",
39+
invitees: [{email: "[email protected]"},{email: "[email protected]"}]
40+
},
41+
]}
42+
}
5843
}
5944

60-
const addEventMock = {
45+
const addEventMock: MockedResponse = {
6146
request: {
6247
query: ADD_EVENT,
6348
},
@@ -76,7 +61,7 @@ const addEventMock = {
7661
}
7762
}
7863

79-
const addEventErrorMock = {
64+
const addEventErrorMock: MockedResponse = {
8065
request: {
8166
query: ADD_EVENT,
8267
},
@@ -103,11 +88,14 @@ const editEventMock = {
10388
}
10489
}
10590

106-
const cancelEventMock = {
91+
const cancelEventMock: MockedResponse = {
10792
request: {
10893
query: CANCEL_EVENT,
94+
variables: {
95+
eventId: '1',
96+
authToken: 'mocked_auth_token'
97+
}
10998
},
110-
variableMatcher: () => true,
11199
result: {
112100
data: {
113101
cancelEvent: {
@@ -129,17 +117,23 @@ jest.mock('react-toastify',()=>({
129117
}
130118
}))
131119

132-
jest.spyOn(Storage.prototype,'getItem').mockImplementation((key: string)=>{
133-
if(key==="auth_token") return "mocked_auth_token"
134-
if(key==="orgToken") return "mocked_org_token"
135-
if(key==="auth") return JSON.stringify({
120+
beforeEach(()=>{
121+
localStorage.setItem('auth_token','mocked_auth_token')
122+
localStorage.setItem('orgToken','mocked_org_token')
123+
localStorage.setItem('auth', JSON.stringify({
136124
auth: true,
137-
firstName: "Jack",
138125
126+
firstName: "Jack",
139127
role: "admin",
140128
userId: "1"
141-
})
142-
return null
129+
}))
130+
jest.useFakeTimers()
131+
})
132+
133+
afterEach(()=>{
134+
localStorage.clear()
135+
jest.runAllTimers()
136+
cleanup()
143137
})
144138

145139
describe('Calendar Tests', () => {
@@ -150,10 +144,10 @@ describe('Calendar Tests', () => {
150144
</MockedProvider>
151145
);
152146
await waitFor(() => {
153-
expect(screen.getByText("Mock Event")).toBeInTheDocument()
147+
expect(screen.getByText("Mocked Event")).toBeInTheDocument()
154148
expect(screen.getByText("Jack")).toBeInTheDocument()
155-
expect(screen.getByText("Next Event")).toBeInTheDocument()
156-
expect(screen.getByText("Musoni")).toBeInTheDocument()
149+
expect(screen.getByText("Another Mocked Event")).toBeInTheDocument()
150+
expect(screen.getByText("Jones")).toBeInTheDocument()
157151
})
158152
});
159153

@@ -214,7 +208,6 @@ describe('Calendar Tests', () => {
214208
});
215209

216210
it('should delete event when delete button is clicked', async () => {
217-
jest.useFakeTimers()
218211
render(
219212
<MockedProvider mocks={[getEventsMock, cancelEventMock]} addTypename={false}>
220213
<Calendar />

src/components/tests/CalendarConfirmation.test.tsx

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import "@testing-library/jest-dom"
2-
import { screen, render, waitFor } from '@testing-library/react';
2+
import { screen, render, waitFor, cleanup } from '@testing-library/react';
33
import React from 'react';
44
import { MockedProvider } from "@apollo/client/testing";
55
import { toast } from "react-toastify";
@@ -80,26 +80,30 @@ const eventInvitationResponseErrorMock = [
8080
}
8181
]
8282

83-
jest.spyOn(Storage.prototype,'getItem').mockImplementation((key: string)=>{
84-
if(key==="auth_token") return "mocked_auth_token"
85-
if(key==="orgToken") return "mocked_org_token"
86-
if(key==="auth") return JSON.stringify({
87-
auth: true,
88-
firstName: "Jack",
89-
90-
role: "admin",
91-
userId: "1"
92-
})
93-
return null
94-
})
95-
9683
jest.mock('react-toastify',()=>({
9784
toast: {
9885
success: jest.fn(),
9986
error: jest.fn(),
10087
}
10188
}))
10289

90+
beforeEach(()=>{
91+
localStorage.setItem('auth_token','mocked_auth_token')
92+
localStorage.setItem('orgToken','mocked_org_token')
93+
localStorage.setItem('auth', JSON.stringify({
94+
auth: true,
95+
96+
firstName: "Jack",
97+
role: "admin",
98+
userId: "1"
99+
}))
100+
})
101+
102+
afterEach(()=>{
103+
localStorage.clear()
104+
cleanup()
105+
})
106+
103107
describe("CalendarConfirmation Tests", () => {
104108

105109
it("should render accepted event invitation", () => {

src/components/tests/EventGuestList.test.tsx

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import "@testing-library/jest-dom"
2-
import { fireEvent, screen, render, waitFor } from '@testing-library/react';
2+
import { fireEvent, screen, render, waitFor, cleanup } from '@testing-library/react';
33
import React from 'react';
44
import { MockedProvider } from "@apollo/client/testing";
55
import { toast } from "react-toastify";
@@ -43,20 +43,24 @@ jest.mock('react-toastify',()=>({
4343
success: jest.fn(),
4444
error: jest.fn(),
4545
}
46-
}))
46+
}))
4747

48-
jest.spyOn(Storage.prototype,'getItem').mockImplementation((key: string)=>{
49-
if(key==="auth_token") return "mocked_auth_token"
50-
if(key==="orgToken") return "mocked_org_token"
51-
if(key==="auth") return JSON.stringify({
48+
beforeEach(()=>{
49+
localStorage.setItem('auth_token','mocked_auth_token')
50+
localStorage.setItem('orgToken','mocked_org_token')
51+
localStorage.setItem('auth', JSON.stringify({
5252
auth: true,
53-
firstName: "Jack",
5453
54+
firstName: "Jack",
5555
role: "admin",
5656
userId: "1"
57-
})
58-
return null
57+
}))
5958
})
59+
60+
afterEach(()=>{
61+
localStorage.clear()
62+
cleanup()
63+
})
6064

6165
describe("EventGuestList Tests", () => {
6266
it("renders event guest list", () => {

0 commit comments

Comments
 (0)