Skip to content

Commit cb11e6b

Browse files
authored
Merge pull request Agetuni#17 from Agetuni/tests-v0.2
Tests v0.2
2 parents 87d54e4 + 4e5c64a commit cb11e6b

File tree

5 files changed

+111
-41
lines changed

5 files changed

+111
-41
lines changed

package-lock.json

Lines changed: 27 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
"react-spring": "^9.5.4",
3030
"redux": "^4.2.0",
3131
"redux-logger": "^3.0.6",
32+
"redux-mock-store": "^1.5.4",
3233
"redux-thunk": "^2.4.1",
3334
"sass": "^1.54.9",
3435
"swiper": "^8.4.2",
Lines changed: 55 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,63 @@
11
import MyReservations from "../../components/reservations/MyReservations";
22
import { render } from '@testing-library/react';
33
import { Provider } from 'react-redux';
4-
import { configureStore } from '@reduxjs/toolkit';
5-
import vehicalSlice from '../../redux/vehical/vehicalSlice';
6-
import newvehical from '../../redux/vehical/vehical.service';
7-
import delvehicalSlice from "../../redux/vehical/delvehicalSlice";
84
import { BrowserRouter } from "react-router-dom";
9-
import axios from 'axios';
5+
import thunk from 'redux-thunk';
6+
import configureStore from 'redux-mock-store';
107

11-
const store = configureStore({
12-
reducer: {
13-
addvehical:newvehical,
14-
vehical: vehicalSlice,
15-
delvehical:delvehicalSlice,
16-
17-
}, // eslint-disable-line
8+
const middlewares = [thunk];
9+
const mockStore = configureStore(middlewares);
1810

19-
});
11+
const initialState = {
12+
reservation: [
13+
{
14+
"id": 39,
15+
"reserve_date": "2023-01-21T11:00:00.000Z",
16+
"address": "New York, USA",
17+
"created_at": "2023-01-18T19:10:54.076Z",
18+
"updated_at": "2023-01-18T19:10:54.076Z",
19+
"user_id": 26,
20+
"vehicle_id": 80,
21+
"vehicle_name": "Tesla Model S"
22+
},
23+
{
24+
"id": 40,
25+
"reserve_date": "2023-02-12T09:30:00.000Z",
26+
"address": "Tokyo, Japan",
27+
"created_at": "2023-01-18T19:10:54.084Z",
28+
"updated_at": "2023-01-18T19:10:54.084Z",
29+
"user_id": 27,
30+
"vehicle_id": 82,
31+
"vehicle_name": "Tesla Model X"
32+
},
33+
{
34+
"id": 41,
35+
"reserve_date": "2023-01-14T10:45:00.000Z",
36+
"address": "Berlin, Germany",
37+
"created_at": "2023-01-18T19:10:54.091Z",
38+
"updated_at": "2023-01-18T19:10:54.091Z",
39+
"user_id": 26,
40+
"vehicle_id": 81,
41+
"vehicle_name": "Tesla Model 3"
42+
},
43+
{
44+
"id": 42,
45+
"reserve_date": "2023-01-31T12:15:00.000Z",
46+
"address": "Toronto, Canada",
47+
"created_at": "2023-01-18T19:10:54.099Z",
48+
"updated_at": "2023-01-18T19:10:54.099Z",
49+
"user_id": 26,
50+
"vehicle_id": 83,
51+
"vehicle_name": "Tesla Model Y"
52+
}
53+
],
54+
vehical: [],
55+
user: {
56+
id: 1
57+
}
58+
};
59+
60+
const store = mockStore(initialState);
2061

2162

2263
describe('MyReservations', () => {
@@ -25,14 +66,6 @@ describe('MyReservations', () => {
2566
// Spy on localStorage
2667
const localStorageMock = jest.spyOn(Storage.prototype, 'getItem');
2768
localStorageMock.mockReturnValue(JSON.stringify({ id: 1, token: 'some-token' }));
28-
29-
// Spy on JSON
30-
const jsonMock = jest.spyOn(JSON, 'parse');
31-
jsonMock.mockReturnValue({ id: 1, token: 'some-token' });
32-
33-
// Mock axios
34-
const mockResponse = { data: [{ id: 1, date: '2022-01-01', address: 'some-address', user_id: 1, vehicle_id: 1 }] };
35-
jest.spyOn(axios, 'get').mockResolvedValue(mockResponse);
3669
});
3770

3871
afterEach(() => {
@@ -47,7 +80,7 @@ describe('MyReservations', () => {
4780
</Provider>
4881
</BrowserRouter>
4982
);
50-
const reservation = await findByText('2022-01-01');
83+
const reservation = await findByText('Tue Jan 31 2023');
5184
expect(reservation).toBeInTheDocument();
5285
});
5386
});

src/__tests__/reservations/__snapshots__/reservation.test.js.snap

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,13 @@ exports[`Reservation form match snapshot 1`] = `
1414
>
1515
<form
1616
className="add-vehicle-form"
17+
onSubmit={[Function]}
1718
>
1819
<div
1920
className="form-group"
2021
>
2122
<label>
22-
email
23+
User name
2324
</label>
2425
<input
2526
className="form-control"
@@ -37,6 +38,8 @@ exports[`Reservation form match snapshot 1`] = `
3738
<input
3839
className="form-control"
3940
id="formGroupExampleInput2"
41+
name="reserve_date"
42+
onChange={[Function]}
4043
required={true}
4144
type="date"
4245
/>
@@ -50,6 +53,8 @@ exports[`Reservation form match snapshot 1`] = `
5053
<input
5154
className="form-control"
5255
id="formGroupExampleInput2"
56+
name="address"
57+
onChange={[Function]}
5358
required={true}
5459
type="text"
5560
/>
@@ -63,30 +68,16 @@ exports[`Reservation form match snapshot 1`] = `
6368
<select
6469
className="form-control"
6570
id="exampleFormControlSelect1"
66-
>
67-
<option>
68-
car 1
69-
</option>
70-
<option>
71-
car 2
72-
</option>
73-
<option>
74-
car 3
75-
</option>
76-
<option>
77-
car 4
78-
</option>
79-
<option>
80-
car 5
81-
</option>
82-
</select>
71+
name="vehicle_id"
72+
onChange={[Function]}
73+
/>
8374
</div>
8475
<div
8576
className="button-green"
8677
>
8778
<button
8879
className="btn btn-primary btn-lg btn-block detail-reserve-btn"
89-
type="button"
80+
type="submit"
9081
>
9182
Reserve
9283
</button>

src/__tests__/reservations/reservation.test.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,29 @@
11
import { BrowserRouter } from "react-router-dom";
22
import AddReservation from "../../components/reservations/reservation";
33
import renderer from 'react-test-renderer';
4+
import { Provider } from 'react-redux';
5+
import thunk from 'redux-thunk';
6+
import configureStore from 'redux-mock-store';
7+
8+
const middlewares = [thunk];
9+
const mockStore = configureStore(middlewares);
10+
11+
const initialState = {
12+
reservation: [],
13+
vehical: [],
14+
user: {
15+
id: 1
16+
}
17+
};
18+
19+
const store = mockStore(initialState);
420

521
test('Reservation form match snapshot', () => {
622
const component = renderer.create(
723
<BrowserRouter>
24+
<Provider store={store}>
825
<AddReservation />
26+
</Provider>
927
</BrowserRouter>
1028
);
1129
let tree = component.toJSON();

0 commit comments

Comments
 (0)