/* global describe: true, test:true, expect:true */ import { settings as settingsReducer, initialState } from '~/reducers/settings'; import { GET_SETTINGS_SUCCESS, SET_SETTINGS_SUCCESS, LOGOUT_SUCCESS, } from '~/store/actionTypes'; describe('settings reducer', () => { test('CASE 1: should return initial state', () => { expect(settingsReducer(undefined, { type: 'Default' })) .toEqual(initialState); }); test('CASE 2: should empty the state on LOGOUT_SUCCESS', () => { expect(settingsReducer({ languageCode: 'en' }, { type: LOGOUT_SUCCESS })) .toEqual(initialState); }); test('CASE 3: should return settings on GET_SETTINGS_SUCCESS', () => { const settings = { autoAcceptFriend: true, defaultPlaylistId: 123 }; const expectedState = { ...initialState, ...settings }; expect(settingsReducer(undefined, { type: GET_SETTINGS_SUCCESS, payload: { settings } })) .toEqual(expectedState); }); test('CASE 3: should return settings on SET_SETTINGS_SUCCESS', () => { const settings = { defaultPlaylistId: 123 }; const existingState = { autoAcceptFriend: false, defaultPlaylistId: -1 }; const expectedState = { ...existingState, ...settings }; expect(settingsReducer(existingState, { type: SET_SETTINGS_SUCCESS, payload: { settings } })) .toEqual(expectedState); }); });