Delayed event management: split endpoints, no auth (#31183)
* Delayed event management: split endpoints, no auth Use the new js-sdk client methods for calling the dedicated, unauthenticated endpoints for each of the cancel/restart/send actions for updating a delayed event. Note that these methods are compatible with homeservers that support only the original endpoint where the update action is in the request body. * REPLACEME: pull in dependant js-sdk branch see matrix-org/matrix-js-sdk#5066 * Format with Prettier * Update matrix-js-sdk
This commit is contained in:
committed by
GitHub
parent
250d6571fe
commit
fcd23b48e0
@@ -276,7 +276,9 @@ export function createTestClient(): MatrixClient {
|
||||
|
||||
_unstable_sendDelayedEvent: jest.fn(),
|
||||
_unstable_sendDelayedStateEvent: jest.fn(),
|
||||
_unstable_updateDelayedEvent: jest.fn(),
|
||||
_unstable_cancelScheduledDelayedEvent: jest.fn(),
|
||||
_unstable_restartScheduledDelayedEvent: jest.fn(),
|
||||
_unstable_sendScheduledDelayedEvent: jest.fn(),
|
||||
|
||||
searchUserDirectory: jest.fn().mockResolvedValue({ limited: false, results: [] }),
|
||||
setDeviceVerified: jest.fn(),
|
||||
|
||||
@@ -27,7 +27,6 @@ import {
|
||||
SimpleObservable,
|
||||
OpenIDRequestState,
|
||||
type IOpenIDUpdate,
|
||||
UpdateDelayedEventAction,
|
||||
} from "matrix-widget-api";
|
||||
import {
|
||||
type ApprovalOpts,
|
||||
@@ -554,24 +553,40 @@ describe("StopGapWidgetDriver", () => {
|
||||
driver = mkDefaultDriver();
|
||||
});
|
||||
|
||||
it("updates delayed events", async () => {
|
||||
client._unstable_updateDelayedEvent.mockResolvedValue({});
|
||||
for (const action of [
|
||||
UpdateDelayedEventAction.Cancel,
|
||||
UpdateDelayedEventAction.Restart,
|
||||
UpdateDelayedEventAction.Send,
|
||||
]) {
|
||||
await expect(driver.updateDelayedEvent("id", action)).resolves.toBeUndefined();
|
||||
expect(client._unstable_updateDelayedEvent).toHaveBeenCalledWith("id", action);
|
||||
}
|
||||
it("can cancel scheduled delayed events", async () => {
|
||||
client._unstable_cancelScheduledDelayedEvent.mockResolvedValue({});
|
||||
await expect(driver.cancelScheduledDelayedEvent("id")).resolves.toBeUndefined();
|
||||
expect(client._unstable_cancelScheduledDelayedEvent).toHaveBeenCalledWith("id");
|
||||
});
|
||||
|
||||
it("fails to update delayed events", async () => {
|
||||
it("can restart scheduled delayed events", async () => {
|
||||
client._unstable_restartScheduledDelayedEvent.mockResolvedValue({});
|
||||
await expect(driver.restartScheduledDelayedEvent("id")).resolves.toBeUndefined();
|
||||
expect(client._unstable_restartScheduledDelayedEvent).toHaveBeenCalledWith("id");
|
||||
});
|
||||
|
||||
it("can send scheduled delayed events", async () => {
|
||||
client._unstable_sendScheduledDelayedEvent.mockResolvedValue({});
|
||||
await expect(driver.sendScheduledDelayedEvent("id")).resolves.toBeUndefined();
|
||||
expect(client._unstable_sendScheduledDelayedEvent).toHaveBeenCalledWith("id");
|
||||
});
|
||||
|
||||
it("fails to cancel scheduled delayed events", async () => {
|
||||
const errorMessage = "Cannot cancel this delayed event";
|
||||
client._unstable_cancelScheduledDelayedEvent.mockRejectedValue(new Error(errorMessage));
|
||||
await expect(driver.cancelScheduledDelayedEvent("id")).rejects.toThrow(errorMessage);
|
||||
});
|
||||
|
||||
it("fails to restart scheduled delayed events", async () => {
|
||||
const errorMessage = "Cannot restart this delayed event";
|
||||
client._unstable_updateDelayedEvent.mockRejectedValue(new Error(errorMessage));
|
||||
await expect(driver.updateDelayedEvent("id", UpdateDelayedEventAction.Restart)).rejects.toThrow(
|
||||
errorMessage,
|
||||
);
|
||||
client._unstable_restartScheduledDelayedEvent.mockRejectedValue(new Error(errorMessage));
|
||||
await expect(driver.restartScheduledDelayedEvent("id")).rejects.toThrow(errorMessage);
|
||||
});
|
||||
|
||||
it("fails to send scheduled delayed events", async () => {
|
||||
const errorMessage = "Cannot send this delayed event";
|
||||
client._unstable_sendScheduledDelayedEvent.mockRejectedValue(new Error(errorMessage));
|
||||
await expect(driver.sendScheduledDelayedEvent("id")).rejects.toThrow(errorMessage);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user