mirror of
https://github.com/shlinkio/shlink-web-client.git
synced 2026-03-03 22:31:52 +00:00
Added redux middleware to save parts of the store in the local storage transparently
This commit is contained in:
@@ -1,48 +1,19 @@
|
||||
import reducer, {
|
||||
LOAD_REAL_TIME_UPDATES,
|
||||
loadRealTimeUpdates,
|
||||
setRealTimeUpdates,
|
||||
} from '../../../src/settings/reducers/settings';
|
||||
import reducer, { SET_REAL_TIME_UPDATES, setRealTimeUpdates } from '../../../src/settings/reducers/settings';
|
||||
|
||||
describe('settingsReducer', () => {
|
||||
const SettingsServiceMock = {
|
||||
updateSettings: jest.fn(),
|
||||
loadSettings: jest.fn(),
|
||||
};
|
||||
const realTimeUpdates = { enabled: true };
|
||||
|
||||
afterEach(jest.clearAllMocks);
|
||||
|
||||
describe('reducer', () => {
|
||||
it('returns realTimeUpdates when action is LOAD_REAL_TIME_UPDATES', () => {
|
||||
expect(reducer({}, { type: LOAD_REAL_TIME_UPDATES, realTimeUpdates })).toEqual({ realTimeUpdates });
|
||||
});
|
||||
});
|
||||
|
||||
describe('loadRealTimeUpdates', () => {
|
||||
it.each([[ true ], [ false ]])('loads settings and returns LOAD_REAL_TIME_UPDATES action', (enabled) => {
|
||||
const realTimeUpdates = { enabled };
|
||||
|
||||
SettingsServiceMock.loadSettings.mockReturnValue({ realTimeUpdates });
|
||||
|
||||
const result = loadRealTimeUpdates(SettingsServiceMock)();
|
||||
|
||||
expect(result).toEqual({
|
||||
type: LOAD_REAL_TIME_UPDATES,
|
||||
realTimeUpdates,
|
||||
});
|
||||
expect(SettingsServiceMock.loadSettings).toHaveBeenCalled();
|
||||
it('returns realTimeUpdates when action is SET_REAL_TIME_UPDATES', () => {
|
||||
expect(reducer({}, { type: SET_REAL_TIME_UPDATES, realTimeUpdates })).toEqual({ realTimeUpdates });
|
||||
});
|
||||
});
|
||||
|
||||
describe('setRealTimeUpdates', () => {
|
||||
it.each([[ true ], [ false ]])('updates settings with provided value and then loads updates again', (enabled) => {
|
||||
const loadRealTimeUpdatesAction = jest.fn();
|
||||
const result = setRealTimeUpdates(enabled);
|
||||
|
||||
setRealTimeUpdates(SettingsServiceMock, loadRealTimeUpdatesAction)(enabled);
|
||||
|
||||
expect(SettingsServiceMock.updateSettings).toHaveBeenCalledWith({ realTimeUpdates: { enabled } });
|
||||
expect(loadRealTimeUpdatesAction).toHaveBeenCalled();
|
||||
expect(result).toEqual({ type: SET_REAL_TIME_UPDATES, realTimeUpdates: { enabled } });
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user