Skip to content

Commit 71b14fc

Browse files
committed
fix tests to mock readRoomState instead of readRoomTimeline
1 parent ee78ba3 commit 71b14fc

File tree

2 files changed

+31
-38
lines changed

2 files changed

+31
-38
lines changed

src/ClientWidgetApi.ts

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -530,24 +530,31 @@ export class ClientWidgetApi extends EventEmitter {
530530
// For backwards compatibility we still call the deprecated
531531
// readRoomEvents and readStateEvents methods in case the client isn't
532532
// letting us know the currently viewed room via setViewedRoomId
533-
const events = request.data.room_ids === undefined && askRoomIds.length === 0
534-
? await (
535-
// This returns [] with the current driver of Element Web.
536-
// Add default implementations of the `readRoomEvents` and `readStateEvents`
537-
// methods to use `readRoomTimeline` and `readRoomState` if they are not overwritten.
538-
request.data.state_key === undefined
539-
? this.driver.readRoomEvents(request.data.type, msgtype, limit, null, since)
540-
: this.driver.readStateEvents(request.data.type, stateKey, limit, null)
541-
)
542-
: (
543-
request.data.state_key === undefined
544-
? await Promise.all(askRoomIds.map(roomId =>
545-
this.driver.readRoomTimeline(roomId, request.data.type, msgtype, stateKey, limit, since),
546-
))
547-
: await Promise.all(askRoomIds.map(roomId =>
548-
this.driver.readRoomState(roomId, request.data.type, stateKey),
549-
))
550-
).flat(1);
533+
const events =
534+
request.data.room_ids === undefined && askRoomIds.length === 0
535+
? await // This returns [] with the current driver of Element Web.
536+
// Add default implementations of the `readRoomEvents` and `readStateEvents`
537+
// methods to use `readRoomTimeline` and `readRoomState` if they are not overwritten.
538+
(request.data.state_key === undefined
539+
? this.driver.readRoomEvents(request.data.type, msgtype, limit, null, since)
540+
: this.driver.readStateEvents(request.data.type, stateKey, limit, null))
541+
: (request.data.state_key === undefined
542+
? await Promise.all(
543+
askRoomIds.map((roomId) =>
544+
this.driver.readRoomTimeline(
545+
roomId,
546+
request.data.type,
547+
msgtype,
548+
stateKey,
549+
limit,
550+
since,
551+
),
552+
),
553+
)
554+
: await Promise.all(
555+
askRoomIds.map((roomId) => this.driver.readRoomState(roomId, request.data.type, stateKey)),
556+
)
557+
).flat(1);
551558
this.transport.reply<IReadEventFromWidgetResponseData>(request, { events });
552559
}
553560

test/ClientWidgetApi-test.ts

Lines changed: 6 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1534,7 +1534,7 @@ describe("ClientWidgetApi", () => {
15341534
});
15351535

15361536
it("reads state events with any state key", async () => {
1537-
driver.readRoomTimeline.mockResolvedValue([
1537+
driver.readRoomState.mockResolvedValue([
15381538
createRoomEvent({ type: "net.example.test", state_key: "A" }),
15391539
createRoomEvent({ type: "net.example.test", state_key: "B" }),
15401540
]);
@@ -1556,22 +1556,15 @@ describe("ClientWidgetApi", () => {
15561556
emitEvent(new CustomEvent("", { detail: event }));
15571557

15581558
await waitFor(() => {
1559-
expect(transport.reply).toBeCalledWith(event, {
1559+
expect(transport.reply).toHaveBeenCalledWith(event, {
15601560
events: [
15611561
createRoomEvent({ type: "net.example.test", state_key: "A" }),
15621562
createRoomEvent({ type: "net.example.test", state_key: "B" }),
15631563
],
15641564
});
15651565
});
15661566

1567-
expect(driver.readRoomTimeline).toBeCalledWith(
1568-
"!room-id",
1569-
"net.example.test",
1570-
undefined,
1571-
undefined,
1572-
0,
1573-
undefined,
1574-
);
1567+
expect(driver.readRoomState).toHaveBeenLastCalledWith("!room-id", "net.example.test", undefined);
15751568
});
15761569

15771570
it("fails to read state events with any state key", async () => {
@@ -1600,7 +1593,7 @@ describe("ClientWidgetApi", () => {
16001593
});
16011594

16021595
it("reads state events with a specific state key", async () => {
1603-
driver.readRoomTimeline.mockResolvedValue([createRoomEvent({ type: "net.example.test", state_key: "B" })]);
1596+
driver.readRoomState.mockResolvedValue([createRoomEvent({ type: "net.example.test", state_key: "B" })]);
16041597

16051598
const event: IReadEventFromWidgetActionRequest = {
16061599
api: WidgetApiDirection.FromWidget,
@@ -1619,19 +1612,12 @@ describe("ClientWidgetApi", () => {
16191612
emitEvent(new CustomEvent("", { detail: event }));
16201613

16211614
await waitFor(() => {
1622-
expect(transport.reply).toBeCalledWith(event, {
1615+
expect(transport.reply).toHaveBeenCalledWith(event, {
16231616
events: [createRoomEvent({ type: "net.example.test", state_key: "B" })],
16241617
});
16251618
});
16261619

1627-
expect(driver.readRoomTimeline).toBeCalledWith(
1628-
"!room-id",
1629-
"net.example.test",
1630-
undefined,
1631-
"B",
1632-
0,
1633-
undefined,
1634-
);
1620+
expect(driver.readRoomState).toHaveBeenLastCalledWith("!room-id", "net.example.test", "B");
16351621
});
16361622

16371623
it("fails to read state events with a specific state key", async () => {

0 commit comments

Comments
 (0)