1
0
mirror of https://github.com/matrix-org/matrix-react-sdk.git synced 2025-08-07 21:23:00 +03:00

ensure metaspace changes correctly notify listeners (#8611)

This commit is contained in:
Janne Mareike Koschinski
2022-05-18 15:15:25 +02:00
committed by GitHub
parent 9b92eca73d
commit 2d386556a6
2 changed files with 29 additions and 0 deletions

View File

@@ -14,6 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
import { EventEmitter } from "events";
import { mocked } from 'jest-mock';
import { EventType } from "matrix-js-sdk/src/@types/event";
import { RoomMember } from "matrix-js-sdk/src/models/room-member";
@@ -1221,4 +1222,26 @@ describe("SpaceStore", () => {
expect(SpaceStore.instance.spacePanelSpaces.map(r => r.roomId)).toStrictEqual([rootSpace.roomId]);
await prom;
});
it("correctly emits events for metaspace changes during onReady", async () => {
// similar to useEventEmitterState, but for use inside of tests
function testEventEmitterState(
emitter: EventEmitter | undefined,
eventName: string | symbol,
callback: (...args: any[]) => void,
): () => void {
callback();
emitter.addListener(eventName, callback);
return () => emitter.removeListener(eventName, callback);
}
let metaSpaces;
const removeListener = testEventEmitterState(store, UPDATE_TOP_LEVEL_SPACES, () => {
metaSpaces = store.enabledMetaSpaces;
});
expect(metaSpaces).toEqual(store.enabledMetaSpaces);
await run();
expect(metaSpaces).toEqual(store.enabledMetaSpaces);
removeListener();
});
});