When a single message is unpinned, link to it

Signed-off-by: Paulo Pinto <paulo.pinto@automattic.com>
This commit is contained in:
Paulo Pinto 2021-07-27 16:58:53 +01:00
parent 8fe7df9171
commit 3f2dadf0fe
4 changed files with 132 additions and 3 deletions

View file

@ -37,7 +37,7 @@ describe("TextForPinnedEvent - newly pinned message(s)", () => {
});
it("shows generic text when multiple messages were pinned", () => {
const event = mockPinnedEvent(['message-2', 'message-3'], ['message-1']);
const event = mockPinnedEvent(['message-1', 'message-2', 'message-3'], ['message-1']);
expect(textForEvent(event)).toBe("@foo:example.com changed the pinned messages for the room.");
});
});
@ -58,7 +58,48 @@ describe("TextForPinnedEvent - newly pinned message(s) (JSX)", () => {
});
it("shows generic text when multiple messages were pinned", () => {
const event = mockPinnedEvent(['message-2', 'message-3'], ['message-1']);
const event = mockPinnedEvent(['message-1', 'message-2', 'message-3'], ['message-1']);
const component = renderer.create(textForEvent(event, true));
expect(component.toJSON()).toMatchSnapshot();
});
});
describe("TextForPinnedEvent - newly unpinned message(s)", () => {
SettingsStore.setValue("feature_pinning", null, SettingLevel.DEVICE, true);
it("mentions message when a single message was unpinned, with a single message previously pinned", () => {
const event = mockPinnedEvent([], ['message-1']);
expect(textForEvent(event)).toBe("@foo:example.com unpinned a message from this room. See all pinned messages.");
});
it("mentions message when a single message was unpinned, with multiple previously pinned messages", () => {
const event = mockPinnedEvent(['message-2'], ['message-1', 'message-2']);
expect(textForEvent(event)).toBe("@foo:example.com unpinned a message from this room. See all pinned messages.");
});
it("shows generic text when multiple messages were unpinned", () => {
const event = mockPinnedEvent(['message-3'], ['message-1', 'message-2', 'message-3']);
expect(textForEvent(event)).toBe("@foo:example.com changed the pinned messages for the room.");
});
});
describe("TextForPinnedEvent - newly unpinned message(s) (JSX)", () => {
SettingsStore.setValue("feature_pinning", null, SettingLevel.DEVICE, true);
it("mentions message when a single message was unpinned, with a single message previously pinned", () => {
const event = mockPinnedEvent([], ['message-1']);
const component = renderer.create(textForEvent(event, true));
expect(component.toJSON()).toMatchSnapshot();
});
it("mentions message when a single message was unpinned, with multiple previously pinned messages", () => {
const event = mockPinnedEvent(['message-2'], ['message-1', 'message-2']);
const component = renderer.create(textForEvent(event, true));
expect(component.toJSON()).toMatchSnapshot();
});
it("shows generic text when multiple messages were unpinned", () => {
const event = mockPinnedEvent(['message-3'], ['message-1', 'message-2', 'message-3']);
const component = renderer.create(textForEvent(event, true));
expect(component.toJSON()).toMatchSnapshot();
});

View file

@ -55,3 +55,59 @@ exports[`TextForPinnedEvent - newly pinned message(s) (JSX) shows generic text w
</span>
</span>
`;
exports[`TextForPinnedEvent - newly unpinned message(s) (JSX) mentions message when a single message was unpinned, with a single message previously pinned 1`] = `
<span>
<span>
@foo:example.com unpinned
<a
onClick={[Function]}
>
a message
</a>
from this room. See all
<a
onClick={[Function]}
>
pinned messages
</a>
.
</span>
</span>
`;
exports[`TextForPinnedEvent - newly unpinned message(s) (JSX) mentions message when a single message was unpinned, with multiple previously pinned messages 1`] = `
<span>
<span>
@foo:example.com unpinned
<a
onClick={[Function]}
>
a message
</a>
from this room. See all
<a
onClick={[Function]}
>
pinned messages
</a>
.
</span>
</span>
`;
exports[`TextForPinnedEvent - newly unpinned message(s) (JSX) shows generic text when multiple messages were unpinned 1`] = `
<span>
<span>
@foo:example.com changed the
<a
onClick={[Function]}
>
pinned messages
</a>
for the room.
</span>
</span>
`;