/* global describe: true, test:true, expect:true */ import { shareExtension as shareExtReducer, initialState, } from '~/reducers/shareExtension'; import { SET_SHARE_EXT, DEFAULT_SHARE_EXT, LOGOUT_SUCCESS, GET_SHARE_EXT_DATA, GET_SHARE_EXT_DATA_SUCCESS, GET_SHARE_EXT_DATA_ERROR, } from '~/store/actionTypes'; describe('shareExtension reducer', () => { test('CASE 1: should return initial state', () => { expect(shareExtReducer(undefined, { type: 'Default' })) .toEqual(initialState); }); test('CASE 2: should empty the state on LOGOUT_SUCCESS', () => { expect(shareExtReducer({}, { type: LOGOUT_SUCCESS })) .toEqual(initialState); }); test('CASE 3: should return share extension on DEFAULT_SHARE_EXT', () => { const expectedState = { ...initialState }; expect(shareExtReducer(undefined, { type: DEFAULT_SHARE_EXT, payload: { } })) .toEqual(expectedState); }); test('CASE 4: should return share extension on SET_SHARE_EXT', () => { const albumId = 123; const shareExtension = { albumId }; const expectedState = { ...initialState, ...shareExtension }; expect(shareExtReducer(initialState, { type: SET_SHARE_EXT, payload: { albumId } })) .toEqual(expectedState); }); test('CASE 5: should return share extension on GET_SHARE_EXT_DATA', () => { const shareExtension = { images: [], meta: { loading: true, error: '' } }; const expectedState = { ...initialState, ...shareExtension }; expect(shareExtReducer(initialState, { type: GET_SHARE_EXT_DATA, payload: { props1: '', props2: [] } })) .toEqual(expectedState); }); test('CASE 6: should return share extension on GET_SHARE_EXT_DATA_SUCCESS', () => { const images = [ { meta: { loading: false, error: '' }, fullFilePath: '/data/user/0/com.creedon.Nixplay.qa/cache/IMG_8246.JPG', uri: 'file:///data/user/0/com.creedon.Nixplay.qa/cache/IMG_8246.JPG', type: 'jpg', fileSize: '27209639', caption: '', mime: 'jpg', fileName: 'IMG_8246.JPG', id: 'id1', }, { meta: { loading: false, error: '' }, fullFilePath: '/data/user/0/com.creedon.Nixplay.qa/cache/IMG_8244.JPG', uri: 'file:///data/user/0/com.creedon.Nixplay.qa/cache/IMG_8244.JPG', type: 'jpg', fileSize: '54096296', caption: '', mime: 'jpg', fileName: 'IMG_8244.JPG', id: 'id2', }]; const shareExtension = { images, meta: { loading: false, error: '' } }; const expectedState = { ...initialState, ...shareExtension }; expect(shareExtReducer(initialState, { type: GET_SHARE_EXT_DATA_SUCCESS, payload: { images } })) .toEqual(expectedState); }); test('CASE 7: should return share extension on GET_SHARE_EXT_DATA_ERROR', () => { const shareExtension = { images: [], meta: { loading: false, error: 'error' } }; const expectedState = { ...initialState, ...shareExtension }; expect(shareExtReducer(initialState, { type: GET_SHARE_EXT_DATA_ERROR, payload: { error: 'error' } })) .toEqual(expectedState); }); test('CASE 8: should return update caption share extension on GET_SHARE_EXT_DATA_SUCCESS SET_SHARE_EXT', () => { const images = [ { meta: { loading: false, error: '' }, fullFilePath: '/data/user/0/com.creedon.Nixplay.qa/cache/IMG_8246.JPG', uri: 'file:///data/user/0/com.creedon.Nixplay.qa/cache/IMG_8246.JPG', type: 'jpg', fileSize: '27209639', caption: '', mime: 'jpg', fileName: 'IMG_8246.JPG', id: 'id1', }, { meta: { loading: false, error: '' }, fullFilePath: '/data/user/0/com.creedon.Nixplay.qa/cache/IMG_8244.JPG', uri: 'file:///data/user/0/com.creedon.Nixplay.qa/cache/IMG_8244.JPG', type: 'jpg', fileSize: '54096296', caption: '', mime: 'jpg', fileName: 'IMG_8244.JPG', id: 'id2', }]; const shareExtension = { images, meta: { loading: false, error: '' } }; const expectedState = { ...initialState, ...shareExtension }; expect(shareExtReducer(initialState, { type: GET_SHARE_EXT_DATA_SUCCESS, payload: { images } })) .toEqual(expectedState); const images2 = [ { meta: { loading: false, error: '' }, fullFilePath: '/data/user/0/com.creedon.Nixplay.qa/cache/IMG_8246.JPG', uri: 'file:///data/user/0/com.creedon.Nixplay.qa/cache/IMG_8246.JPG', type: 'jpg', fileSize: '27209639', caption: 'caption1', mime: 'jpg', fileName: 'IMG_8246.JPG', id: 'id1', }, { meta: { loading: false, error: '' }, fullFilePath: '/data/user/0/com.creedon.Nixplay.qa/cache/IMG_8244.JPG', uri: 'file:///data/user/0/com.creedon.Nixplay.qa/cache/IMG_8244.JPG', type: 'jpg', fileSize: '54096296', caption: 'caption2', mime: 'jpg', fileName: 'IMG_8244.JPG', id: 'id2', }]; const expectedState2 = { ...initialState, ...shareExtension, images: images2 }; expect(shareExtReducer(initialState, { type: SET_SHARE_EXT, payload: { images: images2 } })) .toEqual(expectedState2); }); });