From f8b76a62ff685d9aaf7b74155f6fe5d448c80805 Mon Sep 17 00:00:00 2001 From: Matthew Shao Date: Fri, 28 Apr 2017 22:06:17 +0800 Subject: [PATCH] [web] Add coverage for js/urlState.js --- web/src/js/__tests__/urlStateSpec.js | 66 ++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 web/src/js/__tests__/urlStateSpec.js diff --git a/web/src/js/__tests__/urlStateSpec.js b/web/src/js/__tests__/urlStateSpec.js new file mode 100644 index 000000000..581e79e71 --- /dev/null +++ b/web/src/js/__tests__/urlStateSpec.js @@ -0,0 +1,66 @@ +import initialize from '../urlState' + +import reduceFlows from '../ducks/flows' +import reduceUI from '../ducks/ui/index' +import reduceEventLog from '../ducks/eventLog' + +import * as flowsAction from '../ducks/flows' +import * as uiFlowAction from '../ducks/ui/flow' +import * as eventLogAction from '../ducks/eventLog' + +import {createStore} from './ducks/tutils' + + +describe('test updateStoreFromUrl and updateUrlFromStore', () => { + + let store = createStore({ + flows: reduceFlows, + ui: reduceUI, + eventLog: reduceEventLog + }) + + history.replaceState = jest.fn() + + it('should handle search query', () => { + window.location.hash = "#/flows?s=foo" + let setFilter = jest.spyOn(flowsAction, 'setFilter') + + initialize(store) + expect(setFilter).toBeCalledWith('foo') + }) + + it('should handle highlight query', () => { + window.location.hash = "#/flows?h=foo" + let setHighlight = jest.spyOn(flowsAction, 'setHighlight') + + initialize(store) + expect(setHighlight).toBeCalledWith('foo') + }) + + it('should handle show event log', () => { + window.location.hash = "#/flows?e=true" + let toggleVisibility = jest.spyOn(eventLogAction, 'toggleVisibility') + + initialize(store) + expect(toggleVisibility).toHaveBeenCalled() + }) + + it('should handle unimplemented query argument', () => { + window.location.hash = "#/flows?foo=bar" + console.error = jest.fn() + + initialize(store) + expect(console.error).toBeCalledWith("unimplemented query arg: foo=bar") + }) + + it('should select flow and tab', () => { + window.location.hash = "#/flows/123/request" + let select = jest.spyOn(flowsAction, 'select'), + selectTab = jest.spyOn(uiFlowAction, 'selectTab') + + initialize(store) + expect(select).toBeCalledWith('123') + expect(selectTab).toBeCalledWith('request') + }) + +})