@@ -14,6 +14,7 @@ See the License for the specific language governing permissions and
1414limitations under the License.
1515*/
1616
17+ import { EventEmitter } from "events" ;
1718import { mocked } from 'jest-mock' ;
1819import { EventType } from "matrix-js-sdk/src/@types/event" ;
1920import { RoomMember } from "matrix-js-sdk/src/models/room-member" ;
@@ -1221,4 +1222,26 @@ describe("SpaceStore", () => {
12211222 expect ( SpaceStore . instance . spacePanelSpaces . map ( r => r . roomId ) ) . toStrictEqual ( [ rootSpace . roomId ] ) ;
12221223 await prom ;
12231224 } ) ;
1225+
1226+ it ( "correctly emits events for metaspace changes during onReady" , async ( ) => {
1227+ // similar to useEventEmitterState, but for use inside of tests
1228+ function testEventEmitterState (
1229+ emitter : EventEmitter | undefined ,
1230+ eventName : string | symbol ,
1231+ callback : ( ...args : any [ ] ) => void ,
1232+ ) : ( ) => void {
1233+ callback ( ) ;
1234+ emitter . addListener ( eventName , callback ) ;
1235+ return ( ) => emitter . removeListener ( eventName , callback ) ;
1236+ }
1237+
1238+ let metaSpaces ;
1239+ const removeListener = testEventEmitterState ( store , UPDATE_TOP_LEVEL_SPACES , ( ) => {
1240+ metaSpaces = store . enabledMetaSpaces ;
1241+ } ) ;
1242+ expect ( metaSpaces ) . toEqual ( store . enabledMetaSpaces ) ;
1243+ await run ( ) ;
1244+ expect ( metaSpaces ) . toEqual ( store . enabledMetaSpaces ) ;
1245+ removeListener ( ) ;
1246+ } ) ;
12241247} ) ;
0 commit comments