diff --git a/test/TextForEvent-test.ts b/test/TextForEvent-test.ts new file mode 100644 index 0000000000..fdfb1c5711 --- /dev/null +++ b/test/TextForEvent-test.ts @@ -0,0 +1,43 @@ +import './skinned-sdk'; + +import { textForEvent } from "../src/TextForEvent"; +import { MatrixEvent } from "matrix-js-sdk"; +import SettingsStore from "../src/settings/SettingsStore"; +import { SettingLevel } from "../src/settings/SettingLevel"; +import renderer from 'react-test-renderer'; + +function mockPinnedEvent( + pinnedMessageIds?: string[], + prevPinnedMessageIds?: string[], +): MatrixEvent { + return new MatrixEvent({ + type: "m.room.pinned_events", + state_key: "", + sender: "@foo:example.com", + content: { + pinned: pinnedMessageIds, + }, + prev_content: { + pinned: prevPinnedMessageIds, + }, + }); +} + +describe("TextForPinnedEvent", () => { + SettingsStore.setValue("feature_pinning", null, SettingLevel.DEVICE, true); + + it("should mention sender", () => { + const event = mockPinnedEvent(); + expect(textForEvent(event)).toBe("@foo:example.com changed the pinned messages for the room."); + }); +}); + +describe("TextForPinnedEvent (JSX)", () => { + SettingsStore.setValue("feature_pinning", null, SettingLevel.DEVICE, true); + + it("should mention sender", () => { + const event = mockPinnedEvent(); + const component = renderer.create(textForEvent(event, true)); + expect(component.toJSON()).toMatchSnapshot(); + }); +}); diff --git a/test/__snapshots__/TextForEvent-test.ts.snap b/test/__snapshots__/TextForEvent-test.ts.snap new file mode 100644 index 0000000000..78fd0910b8 --- /dev/null +++ b/test/__snapshots__/TextForEvent-test.ts.snap @@ -0,0 +1,17 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`TextForPinnedEvent (JSX) should mention sender 1`] = ` + + + @foo:example.com changed the + + + pinned messages + + + for the room. + + +`;