Skip to content
This repository was archived by the owner on Sep 11, 2024. It is now read-only.

Commit 8f9a4cf

Browse files
committed
test: verify we actually send events for enabledMetaSpaces
1 parent 9dce9b7 commit 8f9a4cf

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

test/stores/SpaceStore-test.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,14 @@ See the License for the specific language governing permissions and
1414
limitations under the License.
1515
*/
1616

17+
import { EventEmitter } from "events";
1718
import { mocked } from 'jest-mock';
1819
import { EventType } from "matrix-js-sdk/src/@types/event";
1920
import { RoomMember } from "matrix-js-sdk/src/models/room-member";
2021
import { RoomStateEvent } from "matrix-js-sdk/src/models/room-state";
2122
import { defer } from "matrix-js-sdk/src/utils";
2223
import { ClientEvent, RoomEvent, MatrixEvent } from 'matrix-js-sdk/src/matrix';
24+
import { useEventEmitterState } from "../../src/hooks/useEventEmitter";
2325

2426
import SpaceStore from "../../src/stores/spaces/SpaceStore";
2527
import {
@@ -1221,4 +1223,26 @@ describe("SpaceStore", () => {
12211223
expect(SpaceStore.instance.spacePanelSpaces.map(r => r.roomId)).toStrictEqual([rootSpace.roomId]);
12221224
await prom;
12231225
});
1226+
1227+
it("correctly emits events for metaspace changes during onReady", async () => {
1228+
// similar to useEventEmitterState, but for use inside of tests
1229+
function testEventEmitterState(
1230+
emitter: EventEmitter | undefined,
1231+
eventName: string | symbol,
1232+
callback: (...args: any[]) => void,
1233+
): () => void {
1234+
callback();
1235+
emitter.addListener(eventName, callback);
1236+
return () => emitter.removeListener(eventName, callback);
1237+
}
1238+
1239+
let metaSpaces;
1240+
const removeListener = testEventEmitterState(store, UPDATE_TOP_LEVEL_SPACES, () => {
1241+
metaSpaces = store.enabledMetaSpaces;
1242+
});
1243+
expect(metaSpaces).toEqual(store.enabledMetaSpaces);
1244+
await run();
1245+
expect(metaSpaces).toEqual(store.enabledMetaSpaces);
1246+
removeListener();
1247+
});
12241248
});

0 commit comments

Comments
 (0)