123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209 |
- /*
- * <<
- * Davinci
- * ==
- * Copyright (C) 2016 - 2017 EDP
- * ==
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * >>
- */
- import produce from 'immer'
- import reducer, { initialState } from 'app/containers/Schedule/reducer'
- import actions from 'app/containers/Schedule/actions'
- import { EmptySchedule, EmptyWeChatWorkSchedule } from 'app/containers/Schedule/constants'
- import { mockAnonymousAction } from 'test/utils/fixtures'
- import { mockStore } from './fixtures'
- describe('projectsReducer', () => {
- const { scheduleId, schedules, schedule, jobType, mails, dashboard } = mockStore
- let state
- beforeEach(() => {
- state = initialState
- })
- it('should return the initial state', () => {
- expect(reducer(void 0, mockAnonymousAction)).toEqual(state)
- })
- it('should handle the loadSchedules action correctly', () => {
- const expectedResult = produce(state, (draft) => {
- draft.loading.table = true
- })
- expect(reducer(state, actions.loadSchedules(scheduleId))).toEqual(
- expectedResult
- )
- })
- it('should handle the schedulesLoaded action correctly', () => {
- const expectedResult = produce(state, (draft) => {
- draft.loading.table = false
- draft.schedules = schedules
- })
- expect(reducer(state, actions.schedulesLoaded(schedules))).toEqual(
- expectedResult
- )
- })
- it('should handle the relRoleProjectLoaded action correctly', () => {
- const expectedResult = produce(state, (draft) => {
- draft.loading.table = false
- draft.schedules = draft.schedules.filter(({ id }) => id !== scheduleId)
- })
- expect(reducer(state, actions.scheduleDeleted(scheduleId))).toEqual(
- expectedResult
- )
- })
- it('should handle the scheduleAdded action correctly', () => {
- const expectedResult = produce(state, (draft) => {
- draft.loading.edit = false
- draft.schedules.unshift(schedule)
- })
- expect(reducer(state, actions.scheduleAdded(schedule))).toEqual(
- expectedResult
- )
- })
- it('should handle the deleteScheduleFail action correctly', () => {
- const expectedResult = produce(state, (draft) => {
- draft.loading.table = false
- })
- expect(reducer(state, actions.deleteScheduleFail())).toEqual(expectedResult)
- })
- it('should handle the loadScheduleDetail action correctly', () => {
- const expectedResult = produce(state, (draft) => {
- draft.loading.schedule = true
- })
- expect(reducer(state, actions.loadScheduleDetail(scheduleId))).toEqual(
- expectedResult
- )
- })
- it('should handle the scheduleDetailLoaded action correctly', () => {
- const expectedResult = produce(state, (draft) => {
- draft.editingSchedule = schedule
- draft.loading.schedule = false
- })
- expect(reducer(state, actions.scheduleDetailLoaded(schedule))).toEqual(
- expectedResult
- )
- })
- it('should handle the loadScheduleDetailFail action correctly', () => {
- const expectedResult = produce(state, (draft) => {
- draft.loading.schedule = false
- })
- expect(reducer(state, actions.loadScheduleDetailFail())).toEqual(
- expectedResult
- )
- })
- it('should handle the addSchedule and editSchedule action correctly', () => {
- const expectedResult = produce(state, (draft) => {
- draft.loading.edit = true
- })
- expect(
- reducer(
- state,
- actions.addSchedule(schedule, () => void 0)
- )
- ).toEqual(expectedResult)
- expect(
- reducer(
- state,
- actions.editSchedule(schedule, () => void 0)
- )
- ).toEqual(expectedResult)
- })
- it('should handle the scheduleEdited action correctly', () => {
- const expectedResult = produce(state, (draft) => {
- draft.schedules.splice(
- draft.schedules.findIndex(({ id }) => id === scheduleId),
- 1,
- schedule
- )
- draft.loading.edit = false
- })
- expect(reducer(state, actions.scheduleEdited(schedule))).toEqual(
- expectedResult
- )
- })
- it('should handle the addScheduleFail action correctly', () => {
- const expectedResult = produce(state, (draft) => {
- draft.loading.edit = false
- })
- expect(reducer(state, actions.addScheduleFail())).toEqual(
- expectedResult
- )
- expect(reducer(state, actions.editScheduleFail())).toEqual(
- expectedResult
- )
- })
- it('should handle the scheduleStatusChanged action correctly', () => {
- const expectedResult = produce(state, (draft) => {
- draft.schedules.splice(
- draft.schedules.findIndex(
- ({ id }) => id === scheduleId
- ),
- 1,
- schedule
- )
- })
- expect(reducer(state, actions.scheduleStatusChanged(schedule))).toEqual(
- expectedResult
- )
- })
- it('should handle the changeScheduleJobType action correctly', () => {
- const expectedResult = produce(state, (draft) => {
- draft.editingSchedule = jobType === 'email' ? EmptySchedule : EmptyWeChatWorkSchedule
- })
- expect(reducer(state, actions.changeScheduleJobType(jobType))).toEqual(
- expectedResult
- )
- })
- it('should handle the suggestMailsLoaded action correctly', () => {
- const expectedResult = produce(state, (draft) => {
- draft.suggestMails = mails
- })
- expect(reducer(state, actions.suggestMailsLoaded(mails))).toEqual(
- expectedResult
- )
- })
- it('should handle the loadSuggestMailsFail action correctly', () => {
- const expectedResult = produce(state, (draft) => {
- draft.suggestMails = []
- })
- expect(reducer(state, actions.loadSuggestMailsFail())).toEqual(
- expectedResult
- )
- })
- it('should handle the portalDashboardsLoaded action correctly', () => {
- const expectedResult = produce(state, (draft) => {
- draft.portalDashboards[scheduleId] = [dashboard]
- })
- expect(reducer(state, actions.portalDashboardsLoaded(scheduleId, [dashboard]))).toEqual(
- expectedResult
- )
- })
- })
|