history icon indicating copy to clipboard operation
history copied to clipboard

Test improvement: observe window.location

Open thejohnhoffer opened this issue 3 years ago • 0 comments

Expected behavior

Tests should ensure window.location is correctly modified.

Actual behavior

Test sequences only test against history.location

Details

For HashHistory, "window.location" and "history" should be related as follows:

const historyHref = createPath(history.location);
const windowHref = window.location.hash.substr(1);
expect(historyHref).toEqual(windowHref)

All of the tests in the "TestSequences" folder only test against history.location, but there is currently "no guarantee" that the location is actually reflected in the window.location.

In my PR to solve Issue #912, I noticed there is currently no test of the relationship between the two location states. That PR therefore happens to include a general fix for this issue. If PR #911 is ultimately rejected, this issue could be solved with a new PR just with this:

afterEach(() => { 
  const historyHref = createPath(history.location);
  const windowHref = window.location.hash.substr(1);
  expect(historyHref).toEqual(windowHref);
})

added to packages/history/__tests__/hash-test.js

thejohnhoffer avatar Dec 21 '21 15:12 thejohnhoffer