diff options
Diffstat (limited to 'history/modules/__tests__/TestSequences/ReplaceStateWarning.js')
-rw-r--r-- | history/modules/__tests__/TestSequences/ReplaceStateWarning.js | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/history/modules/__tests__/TestSequences/ReplaceStateWarning.js b/history/modules/__tests__/TestSequences/ReplaceStateWarning.js new file mode 100644 index 0000000..a2804ab --- /dev/null +++ b/history/modules/__tests__/TestSequences/ReplaceStateWarning.js @@ -0,0 +1,40 @@ +import expect from 'expect'; + +import execSteps from './execSteps.js'; + +export default function(history, done) { + const steps = [ + location => { + expect(location).toMatchObject({ + pathname: '/' + }); + + history.replace('/home', { the: 'state' }); + }, + (location, action) => { + expect(action).toBe('REPLACE'); + expect(location).toMatchObject({ + pathname: '/home', + state: undefined + }); + + // We should see a warning message. + expect(warningMessage).toMatch( + 'Hash history cannot replace state; it is ignored' + ); + } + ]; + + let consoleWarn = console.warn; // eslint-disable-line no-console + let warningMessage; + + // eslint-disable-next-line no-console + console.warn = message => { + warningMessage = message; + }; + + execSteps(steps, history, (...args) => { + console.warn = consoleWarn; // eslint-disable-line no-console + done(...args); + }); +} |