75 lines
2.0 KiB
JavaScript
75 lines
2.0 KiB
JavaScript
/* global describe: true, test:true, expect:true */
|
|
import { framePairing as framePairingReducer, initialState } from '~/reducers/framePairing';
|
|
import {
|
|
FRAME_DISCOVER_START,
|
|
FRAME_DISCOVER_STARTED_SUCCESS,
|
|
FRAME_DISCOVER_ERROR,
|
|
FRAME_DISCOVER_SUCCESS,
|
|
} from '~/store/actionTypes';
|
|
|
|
describe('framePairing reducer', () => {
|
|
test('CASE 1: should return initial state', () => {
|
|
expect(framePairingReducer(undefined, { type: 'Default' }))
|
|
.toEqual(initialState);
|
|
});
|
|
|
|
test('CASE 2: should return state with loading when type is FRAME_DISCOVER_START or FRAME_DISCOVER_STARTED_SUCCESS', () => {
|
|
const expectedState = { ...initialState, meta: { ...initialState.meta, loading: true } };
|
|
expect(framePairingReducer(initialState, {
|
|
type: FRAME_DISCOVER_START,
|
|
})).toEqual(expectedState);
|
|
expect(framePairingReducer(initialState, {
|
|
type: FRAME_DISCOVER_STARTED_SUCCESS,
|
|
})).toEqual(expectedState);
|
|
});
|
|
|
|
test('CASE 3: should return frames with meta property when type is FRAME_DISCOVER_SUCCESS', () => {
|
|
const services = [{
|
|
txt: {
|
|
serialNumber: '',
|
|
model: 1,
|
|
},
|
|
},
|
|
{
|
|
txt: {
|
|
serialNumber: '',
|
|
model: 2,
|
|
},
|
|
}];
|
|
const specs = {
|
|
1: {
|
|
name: '',
|
|
colors: [1, 2],
|
|
photo: [
|
|
'',
|
|
'',
|
|
],
|
|
},
|
|
2: {
|
|
name: '',
|
|
colors: [1, 2],
|
|
photo: [
|
|
'',
|
|
'',
|
|
],
|
|
},
|
|
};
|
|
const stateResult = framePairingReducer(undefined, {
|
|
type: FRAME_DISCOVER_SUCCESS,
|
|
payload: { services, specs },
|
|
});
|
|
expect(stateResult).toHaveProperty('frames');
|
|
expect(stateResult.frames).toHaveLength(services.length);
|
|
expect(stateResult).toHaveProperty('meta');
|
|
});
|
|
|
|
test('CASE 5: should return correct state when type is FRAME_DISCOVER_ERROR', () => {
|
|
const err = new Error('discoverFrameErr');
|
|
const expectedState = { ...initialState, meta: { error: err, loading: false } };
|
|
expect(framePairingReducer(initialState, {
|
|
type: FRAME_DISCOVER_ERROR,
|
|
payload: { error: err },
|
|
})).toEqual(expectedState);
|
|
});
|
|
});
|