Update StopGapWidgetDriver to support sticky events (#31205)
* Update StopGapWidgetDriver to support sticky events * Update to-device * Update tests * Clean up duplication * lint * yarn lock
This commit is contained in:
@@ -308,6 +308,8 @@ export function createTestClient(): MatrixClient {
|
||||
_unstable_cancelScheduledDelayedEvent: jest.fn(),
|
||||
_unstable_restartScheduledDelayedEvent: jest.fn(),
|
||||
_unstable_sendScheduledDelayedEvent: jest.fn(),
|
||||
_unstable_sendStickyEvent: jest.fn(),
|
||||
_unstable_sendStickyDelayedEvent: jest.fn(),
|
||||
|
||||
searchUserDirectory: jest.fn().mockResolvedValue({ limited: false, results: [] }),
|
||||
setDeviceVerified: jest.fn(),
|
||||
|
||||
@@ -131,6 +131,7 @@ describe("ElementWidgetDriver", () => {
|
||||
"org.matrix.msc3819.receive.to_device:m.call.replaces",
|
||||
"org.matrix.msc4157.send.delayed_event",
|
||||
"org.matrix.msc4157.update_delayed_event",
|
||||
"org.matrix.msc4354.send_sticky_event",
|
||||
// RTC decline events (send/receive, unstable/stable)
|
||||
"org.matrix.msc2762.send.event:org.matrix.msc4310.rtc.decline",
|
||||
"org.matrix.msc2762.send.event:m.rtc.decline",
|
||||
@@ -593,6 +594,84 @@ describe("ElementWidgetDriver", () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe("sendStickyEvent", () => {
|
||||
let driver: WidgetDriver;
|
||||
const roomId = "!this-room-id";
|
||||
|
||||
beforeEach(() => {
|
||||
driver = mkDefaultDriver();
|
||||
});
|
||||
|
||||
it("sends sticky message events", async () => {
|
||||
client._unstable_sendStickyEvent.mockResolvedValue({
|
||||
event_id: "id",
|
||||
});
|
||||
|
||||
await expect(driver.sendStickyEvent(2000, EventType.RoomMessage, {})).resolves.toEqual({
|
||||
roomId,
|
||||
eventId: "id",
|
||||
});
|
||||
|
||||
expect(client._unstable_sendStickyEvent).toHaveBeenCalledWith(
|
||||
roomId,
|
||||
2000,
|
||||
null,
|
||||
EventType.RoomMessage,
|
||||
{},
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe("sendDelayedStickyEvent", () => {
|
||||
let driver: WidgetDriver;
|
||||
const roomId = "!this-room-id";
|
||||
|
||||
beforeEach(() => {
|
||||
driver = mkDefaultDriver();
|
||||
});
|
||||
|
||||
it("sends delayed sticky message events", async () => {
|
||||
client._unstable_sendStickyDelayedEvent.mockResolvedValue({
|
||||
delay_id: "id",
|
||||
});
|
||||
|
||||
await expect(driver.sendDelayedStickyEvent(1000, null, 2000, EventType.RoomMessage, {})).resolves.toEqual({
|
||||
roomId,
|
||||
delayId: "id",
|
||||
});
|
||||
|
||||
expect(client._unstable_sendStickyDelayedEvent).toHaveBeenCalledWith(
|
||||
roomId,
|
||||
2000,
|
||||
{ delay: 1000 },
|
||||
null,
|
||||
EventType.RoomMessage,
|
||||
{},
|
||||
);
|
||||
});
|
||||
it("sends child action delayed sticky message events", async () => {
|
||||
client._unstable_sendStickyDelayedEvent.mockResolvedValue({
|
||||
delay_id: "id-child",
|
||||
});
|
||||
|
||||
await expect(
|
||||
driver.sendDelayedStickyEvent(null, "id-parent", 2000, EventType.RoomMessage, {}),
|
||||
).resolves.toEqual({
|
||||
roomId,
|
||||
delayId: "id-child",
|
||||
});
|
||||
|
||||
expect(client._unstable_sendStickyDelayedEvent).toHaveBeenCalledWith(
|
||||
roomId,
|
||||
2000,
|
||||
{ parent_delay_id: "id-parent" },
|
||||
null,
|
||||
EventType.RoomMessage,
|
||||
{},
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe("If the feature_dynamic_room_predecessors feature is not enabled", () => {
|
||||
beforeEach(() => {
|
||||
jest.spyOn(SettingsStore, "getValue").mockReturnValue(false);
|
||||
|
||||
Reference in New Issue
Block a user