discourse/plugins/chat/spec/system/page_objects
Régis Hanol b9e762981a
FIX: Chat back button loses starred context after drawer reopen (#40219)
When the chat drawer is closed and reopened on a starred channel, the
back button took the user to the default channels list instead of the
starred-channels list they had originally come from.

Root cause: `chatHistory.visit(route)` always appended to history. When
the drawer reopens to `lastKnownChatURL` (the channel itself), the same
route is appended a second time, shifting `previousRoute` off the
original `chat.starred-channels` entry. The back-button fallback in
`drawer-routes/channel.gjs` then routed to `chat.channels`.

Fix: dedupe consecutive identical route visits in `chatHistory.visit` by
comparing name and params (via `deepEqual`). Reopening to the same URL
no longer clobbers the user's real navigation context.

Adds a unit test for the dedup behavior, a system spec covering the
close/reopen scenario, and a view-agnostic `open_channel_row` helper on
the drawer page object (the existing `open_channel` is scoped to the
channels-list view only and doesn't work from the starred view).

https://meta.discourse.org/t/403431
2026-05-21 17:55:46 +02:00
..
chat DEV: Enable Style/RedundantSelf rubocop rule (#40098) 2026-05-19 19:27:45 +02:00
chat_drawer FIX: Chat back button loses starred context after drawer reopen (#40219) 2026-05-21 17:55:46 +02:00
modals FEATURE: chat channel emojis (#36288) 2025-11-28 10:09:08 +04:00
pages DEV: Fix a chat search spec flake (#40068) 2026-05-15 14:06:56 +02:00
sidebar DEV: Restore and fix chat thread indicator specs (#39623) 2026-04-29 11:39:05 +02:00