Passed
Push — task/application-timeline-vali... ( e3ce3d...5c0763 )
by Yonathan
04:25
created

resources/assets/js/store/Application/applicationReducer.test.ts   A

Complexity

Total Complexity 1
Complexity/F 0

Size

Lines of Code 54
Function Count 0

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
wmc 1
eloc 41
mnd 1
bc 1
fnc 0
dl 0
loc 54
bpm 0
cpm 0
noi 0
c 0
b 0
f 0
rs 10
1
import {
2
  initEntities,
3
  entitiesReducer,
4
  EntityState,
5
} from "./applicationReducer";
6
import { fakeApplication } from "../../fakeData/fakeApplications";
7
import {
8
  FetchApplicationAction,
9
  FETCH_APPLICATION_SUCCEEDED,
10
} from "./applicationActions";
11
import { fakeJobApplicationAnswers } from "../../fakeData/fakeJob";
12
import { deleteProperty, getId, mapToObject } from "../../helpers/queries";
13
14
describe("applicationReducer tests", (): void => {
15
  describe("EntitiesReducer", (): void => {
16
    it("Splits fetched application into Application and ApplicationReview correctly", (): void => {
17
      const application = fakeApplication({
18
        id: 100,
19
      });
20
      const jobApplicationAnswers = fakeJobApplicationAnswers();
21
      const initialState = initEntities();
22
      const expectState: EntityState = {
23
        ...initEntities(),
24
        applications: {
25
          [application.id]: deleteProperty(application, "application_review"),
26
        },
27
        applicationReviews: application.application_review
28
          ? {
29
              byId: {
30
                [application.application_review.id]:
31
                  application.application_review,
32
              },
33
              idByApplicationId: {
34
                [application.id]: application.application_review.id,
35
              },
36
            }
37
          : {
38
              byId: {},
39
              idByApplicationId: {},
40
            },
41
        jobApplicationAnswers: {
42
          ...mapToObject(jobApplicationAnswers, getId),
43
        },
44
      };
45
      const action: FetchApplicationAction = {
46
        type: FETCH_APPLICATION_SUCCEEDED,
47
        payload: { application, jobApplicationAnswers },
48
        meta: { id: application.id },
49
      };
50
      expect(entitiesReducer(initialState, action)).toEqual(expectState);
51
    });
52
  });
53
});
54