Fix pinned message banner disappearing when a pinned message event is unkown (#33534)

* fix: remove unknown event when fetching pinned message events

* test: update tsts
This commit is contained in:
Florian Duros
2026-05-20 11:40:09 +02:00
committed by GitHub
parent d41ff70057
commit 4b6e0b7ebf
4 changed files with 34 additions and 26 deletions
@@ -294,6 +294,23 @@ describe("<PinnedMessagesCard />", () => {
await initPinnedMessagesCard([], [pin]);
expect(screen.queryAllByRole("listitem")).toHaveLength(0);
});
it("should filter out null events returned by useFetchedPinnedEvents and only display valid events", async () => {
// RoomCreate is not a pinnable event type — useFetchedPinnedEvents returns null for it
const unpinnableEvent = mkEvent({
event: true,
type: EventType.RoomCreate,
content: {},
room: "!room:example.org",
user: "@alice:example.org",
});
// pin1 is a valid pinnable message, unpinnableEvent causes useFetchedPinnedEvents to return null
// useSortedFetchedPinnedEvents must filter out the null, leaving only pin1
await initPinnedMessagesCard([pin1], [unpinnableEvent]);
await waitFor(() => expect(screen.queryAllByRole("listitem")).toHaveLength(1));
expect(screen.getByText("First pinned message")).toBeInTheDocument();
});
});
describe("unpin all", () => {