mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-10-25 00:13:00 +00:00
fix(map): the location button follows the viewport instead of the mount
Both renderers read window.innerWidth once while rendering, so the button that turns GPS on was decided by the width the map happened to see when it mounted: a phone turned sideways crosses the 768px cut and kept whatever it had, and turning back did not bring it home either. Both now use the same useIsPhone the shell switches on. The test stub for matchMedia answers width queries from window.innerWidth and re-evaluates on a resize, so a breakpoint can be driven from a test the way the browser drives it.
This commit is contained in:
@@ -1030,6 +1030,26 @@ describe('MapView live location', () => {
|
||||
expect(geoMock.cycleMode).toHaveBeenCalled()
|
||||
})
|
||||
|
||||
it('FE-COMP-MAPVIEW-064b: turning the phone sideways and back takes the button with it', () => {
|
||||
Object.defineProperty(window, 'innerWidth', { configurable: true, writable: true, value: 420 })
|
||||
geoMock.mode = 'off'
|
||||
render(<MapView />)
|
||||
expect(screen.getByRole('button', { name: 'Show my location' })).toBeInTheDocument()
|
||||
|
||||
// landscape crosses the 768px cut without remounting the map
|
||||
act(() => {
|
||||
Object.defineProperty(window, 'innerWidth', { configurable: true, writable: true, value: 844 })
|
||||
window.dispatchEvent(new Event('resize'))
|
||||
})
|
||||
expect(screen.queryByRole('button', { name: 'Show my location' })).toBeNull()
|
||||
|
||||
act(() => {
|
||||
Object.defineProperty(window, 'innerWidth', { configurable: true, writable: true, value: 420 })
|
||||
window.dispatchEvent(new Event('resize'))
|
||||
})
|
||||
expect(screen.getByRole('button', { name: 'Show my location' })).toBeInTheDocument()
|
||||
})
|
||||
|
||||
it('FE-COMP-MAPVIEW-077: the map draws no credit control of its own, on either width', () => {
|
||||
const desktop = render(<MapView />)
|
||||
// The desktop credit is Leaflet's own, in its own container; this component adds none.
|
||||
|
||||
Reference in New Issue
Block a user