122 lines
3.5 KiB
JavaScript
122 lines
3.5 KiB
JavaScript
/* global describe: true, test:true, expect:true */
|
|
import { photoPrint as photoPrintReducer, initialState } from '~/reducers/photoPrint';
|
|
import {
|
|
PLACE_PHOTO_PRINT_ORDER,
|
|
PLACE_PHOTO_PRINT_ORDER_SUCCESS,
|
|
PLACE_PHOTO_PRINT_ORDER_ERROR,
|
|
SET_PHOTOS_TO_QUEUE,
|
|
SET_PHOTOS_TO_QUEUE_SUCCESS,
|
|
SET_PHOTOS_TO_QUEUE_ERROR,
|
|
REMOVE_PHOTO_FROM_QUEUE,
|
|
REMOVE_PHOTO_FROM_QUEUE_SUCCESS,
|
|
REMOVE_PHOTO_FROM_QUEUE_ERROR,
|
|
} from '~/store/actionTypes';
|
|
|
|
describe('photoPrint reducer', () => {
|
|
test('CASE 1: should return initial state', () => {
|
|
expect(photoPrintReducer(undefined, { type: 'Default' }))
|
|
.toEqual(initialState);
|
|
});
|
|
test('CASE 2: should return state with loading when type is PLACE_PHOTO_PRINT_ORDER, SET_PHOTOS_TO_QUEUE or REMOVE_PHOTO_FROM_QUEUE', () => {
|
|
const expectedState = { ...initialState, meta: { ...initialState.meta, loading: true } };
|
|
expect(photoPrintReducer(initialState, { type: PLACE_PHOTO_PRINT_ORDER })).toEqual(expectedState);
|
|
expect(photoPrintReducer(initialState, { type: SET_PHOTOS_TO_QUEUE })).toEqual(expectedState);
|
|
expect(photoPrintReducer(initialState, { type: REMOVE_PHOTO_FROM_QUEUE })).toEqual(expectedState);
|
|
});
|
|
|
|
test('CASE 4: should return correct state when type is PLACE_PHOTO_PRINT_ORDER_SUCCESS', () => {
|
|
const expectedState = { ...initialState, meta: { ...initialState.meta, loading: false }, orderNumbers: ['1234567'] };
|
|
expect(photoPrintReducer(
|
|
initialState,
|
|
{
|
|
type: PLACE_PHOTO_PRINT_ORDER_SUCCESS,
|
|
payload: {
|
|
orderNumber: '1234567',
|
|
},
|
|
},
|
|
)).toEqual(expectedState);
|
|
});
|
|
|
|
test('CASE 5: should return correct state when type is REMOVE_PHOTO_FROM_QUEUE_SUCCESS', () => {
|
|
const images = ['image1', 'image2', 'image3'];
|
|
const expectedState = {
|
|
...initialState,
|
|
images,
|
|
count: 3,
|
|
meta: {
|
|
...initialState.meta,
|
|
loading: false,
|
|
},
|
|
};
|
|
expect(photoPrintReducer(
|
|
initialState,
|
|
{
|
|
type: REMOVE_PHOTO_FROM_QUEUE_SUCCESS,
|
|
payload: {
|
|
images,
|
|
},
|
|
},
|
|
)).toEqual(expectedState);
|
|
});
|
|
|
|
test('CASE 6: should return correct state when type is SET_PHOTOS_TO_QUEUE_SUCCESS', () => {
|
|
const images = ['image1', 'image2', 'image3'];
|
|
const expectedState = {
|
|
...initialState,
|
|
images,
|
|
count:
|
|
3,
|
|
meta:
|
|
{
|
|
...initialState.meta,
|
|
loading:
|
|
false,
|
|
},
|
|
};
|
|
expect(photoPrintReducer(
|
|
initialState,
|
|
{
|
|
type: SET_PHOTOS_TO_QUEUE_SUCCESS,
|
|
payload: {
|
|
images,
|
|
},
|
|
},
|
|
)).toEqual(expectedState);
|
|
});
|
|
|
|
|
|
test('CASE 7: should return error state when type is PLACE_PHOTO_PRINT_ORDER_ERROR', () => {
|
|
const error = new Error('Error');
|
|
const expectedState = { ...initialState, meta: { ...initialState.meta, loading: false, error } };
|
|
expect(photoPrintReducer(
|
|
initialState,
|
|
{
|
|
type: PLACE_PHOTO_PRINT_ORDER_ERROR,
|
|
payload: { error },
|
|
},
|
|
)).toEqual(expectedState);
|
|
});
|
|
test('CASE 8: should return error state when type is SET_PHOTOS_TO_QUEUE_ERROR', () => {
|
|
const error = new Error('Error');
|
|
const expectedState = { ...initialState, meta: { ...initialState.meta, loading: false, error } };
|
|
expect(photoPrintReducer(
|
|
initialState,
|
|
{
|
|
type: SET_PHOTOS_TO_QUEUE_ERROR,
|
|
payload: { error },
|
|
},
|
|
)).toEqual(expectedState);
|
|
});
|
|
test('CASE 9: should return error state when type is REMOVE_PHOTO_FROM_QUEUE_ERROR', () => {
|
|
const error = new Error('Error');
|
|
const expectedState = { ...initialState, meta: { ...initialState.meta, loading: false, error } };
|
|
expect(photoPrintReducer(
|
|
initialState,
|
|
{
|
|
type: REMOVE_PHOTO_FROM_QUEUE_ERROR,
|
|
payload: { error },
|
|
},
|
|
)).toEqual(expectedState);
|
|
});
|
|
});
|