Skip to content

Commit ccd77be

Browse files
authored
Fix state events being hidden from widgets in read_events actions (#29954)
This widget driver method was mistakenly filtering all state events out of the responses to read_events fromWidget actions. This was a hold-over from back when read_events had two different behaviors depending on whether you specified a state_key (i.e. before the introduction of the update_state action).
1 parent be5dd05 commit ccd77be

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

src/stores/widgets/StopGapWidgetDriver.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -498,9 +498,9 @@ export class StopGapWidgetDriver extends WidgetDriver {
498498
if (results.length >= limit) break;
499499
if (since !== undefined && ev.getId() === since) break;
500500

501-
if (ev.getType() !== eventType || ev.isState()) continue;
501+
if (ev.getType() !== eventType) continue;
502502
if (eventType === EventType.RoomMessage && msgtype && msgtype !== ev.getContent()["msgtype"]) continue;
503-
if (ev.getStateKey() !== undefined && stateKey !== undefined && ev.getStateKey() !== stateKey) continue;
503+
if (stateKey !== undefined && ev.getStateKey() !== stateKey) continue;
504504
results.push(ev);
505505
}
506506

test/unit-tests/stores/widgets/StopGapWidgetDriver-test.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -708,6 +708,7 @@ describe("StopGapWidgetDriver", () => {
708708
id: "$event-id2",
709709
type: "org.example.foo",
710710
user: "@alice:example.org",
711+
skey: "",
711712
content: { hello: "world" },
712713
room: "!1:example.org",
713714
});
@@ -726,6 +727,12 @@ describe("StopGapWidgetDriver", () => {
726727
).toEqual([event2, event1].map((e) => e.getEffectiveEvent()));
727728
});
728729

730+
it("reads state events", async () => {
731+
expect(
732+
await driver.readRoomTimeline("!1:example.org", "org.example.foo", undefined, "", 10, undefined),
733+
).toEqual([event2.getEffectiveEvent()]);
734+
});
735+
729736
it("reads up to a limit", async () => {
730737
expect(
731738
await driver.readRoomTimeline("!1:example.org", "org.example.foo", undefined, undefined, 1, undefined),

0 commit comments

Comments
 (0)