/* global describe: true, test:true, expect:true */ import { app } from '~/reducers/app'; import { CHANGE_APP_ROOT, UPDATE_APP_STATE, UPDATE_SHOW_NOTIFICATION, ACCEPT_TNC_LICENSE, ACCEPT_TNC_LICENSE_SUCCESS, ACCEPT_TNC_LICENSE_ERROR, } from '~/store/actionTypes'; describe('app reducer', () => { test('CASE 1: should return initial state', () => { const expectedState = { root: 'splash', sharedPlaylistOnboardingTutorialState: 0, location: 'United States', appStatus: 'active', hasLoggedInOnce: false, showNotification: false, fromSplashScreen: false, ssid: '', config: {}, }; expect(app(undefined, { type: 'Default' })) .toEqual(expectedState); }); test('CASE 2: should return the correct state when actionType is `CHANGE_APP_ROOT` and payload is valid root', () => { const expectedState = { root: 'home' }; expect(app({}, { type: CHANGE_APP_ROOT, payload: { root: 'home' } })) .toEqual(expectedState); }); test('CASE 3: should return the initial state when actionType is `CHANGE_APP_ROOT` and payload is not valid root', () => { const expectedState = {}; expect(app({}, { type: CHANGE_APP_ROOT, payload: { root: 'something else' } })) .toEqual(expectedState); }); test('CASE 8: default should return the appStatus active', () => { const expectedState = { appStatus: 'active' }; expect(app({ appStatus: 'active' }, { type: UPDATE_APP_STATE, payload: 'active' })) .toEqual(expectedState); }); test('CASE 9: default should return the showNotification false', () => { const expectedState = { showNotification: false }; expect(app({ showNotification: false }, { type: UPDATE_SHOW_NOTIFICATION, payload: false })) .toEqual(expectedState); }); test('CASE 10: default should return the state ACCEPT_TNC_LICENSE', () => { const expectedState = { config: { user_accepted_tnc: true } }; expect(app({ config: { user_accepted_tnc: true } }, { type: ACCEPT_TNC_LICENSE, payload: false })) .toEqual(expectedState); }); test('CASE 11: default should return the state ACCEPT_TNC_LICENSE_SUCCESS', () => { const expectedState = { config: { user_accepted_tnc: true } }; expect(app({ config: { user_accepted_tnc: true } }, { type: ACCEPT_TNC_LICENSE_SUCCESS, payload: false })) .toEqual(expectedState); }); test('CASE 12: default should return the config error', () => { const expectedState = { config: {} }; expect(app({ config: {} }, { type: ACCEPT_TNC_LICENSE_ERROR, payload: false })) .toEqual(expectedState); }); });