Skip to content

Commit 58ba8bc

Browse files
committed
Adapt tests
1 parent 719a365 commit 58ba8bc

File tree

1 file changed

+63
-49
lines changed

1 file changed

+63
-49
lines changed

packages/composable-controller/src/ComposableController.test.ts

Lines changed: 63 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -151,9 +151,13 @@ describe('ComposableController', () => {
151151

152152
describe('BaseControllerV1', () => {
153153
it('should compose controller state', () => {
154+
type ComposableControllerState = {
155+
BarController: BarControllerState;
156+
BazController: BazControllerState;
157+
};
154158
const composableMessenger = new ControllerMessenger<
155159
never,
156-
ComposableControllerEvents
160+
ComposableControllerEvents<ComposableControllerState>
157161
>().getRestricted({
158162
name: 'ComposableController',
159163
allowedActions: [],
@@ -171,9 +175,12 @@ describe('ComposableController', () => {
171175
});
172176

173177
it('should notify listeners of nested state change', () => {
178+
type ComposableControllerState = {
179+
BarController: BarControllerState;
180+
};
174181
const controllerMessenger = new ControllerMessenger<
175182
never,
176-
ComposableControllerEvents
183+
ComposableControllerEvents<ComposableControllerState>
177184
>();
178185
const composableMessenger = controllerMessenger.getRestricted({
179186
name: 'ComposableController',
@@ -203,9 +210,15 @@ describe('ComposableController', () => {
203210

204211
describe('BaseControllerV2', () => {
205212
it('should compose controller state', () => {
213+
type ComposableControllerState = {
214+
FooController: FooControllerState;
215+
QuzController: QuzControllerState;
216+
};
206217
const controllerMessenger = new ControllerMessenger<
207218
never,
208-
FooControllerEvent | QuzControllerEvent
219+
| ComposableControllerEvents<ComposableControllerState>
220+
| FooControllerEvent
221+
| QuzControllerEvent
209222
>();
210223
const fooMessenger = controllerMessenger.getRestricted<
211224
'FooController',
@@ -224,49 +237,46 @@ describe('ComposableController', () => {
224237
const fooController = new FooController(fooMessenger);
225238
const quzController = new QuzController(quzMessenger);
226239

227-
const composableControllerMessenger = controllerMessenger.getRestricted<
228-
'ComposableController',
229-
never,
230-
(FooControllerEvent | QuzControllerEvent)['type']
231-
>({
240+
const composableControllerMessenger = controllerMessenger.getRestricted({
232241
name: 'ComposableController',
233242
allowedActions: [],
234243
allowedEvents: [
235244
'FooController:stateChange',
236245
'QuzController:stateChange',
237246
],
238247
});
239-
const composableController = new ComposableController({
240-
controllers: [fooController, quzController],
241-
messenger: composableControllerMessenger,
242-
});
248+
const composableController =
249+
new ComposableController<ComposableControllerState>({
250+
controllers: [fooController, quzController],
251+
messenger: composableControllerMessenger,
252+
});
243253
expect(composableController.state).toStrictEqual({
244254
FooController: { foo: 'foo' },
245255
QuzController: { quz: 'quz' },
246256
});
247257
});
248258

249259
it('should notify listeners of nested state change', () => {
260+
type ComposableControllerState = {
261+
FooController: FooControllerState;
262+
};
250263
const controllerMessenger = new ControllerMessenger<
251264
never,
252-
ComposableControllerEvents | FooControllerEvent
265+
| ComposableControllerEvents<ComposableControllerState>
266+
| FooControllerEvent
253267
>();
254268
const fooControllerMessenger = controllerMessenger.getRestricted({
255269
name: 'FooController',
256270
allowedActions: [],
257271
allowedEvents: [],
258272
});
259273
const fooController = new FooController(fooControllerMessenger);
260-
const composableControllerMessenger = controllerMessenger.getRestricted<
261-
'ComposableController',
262-
never,
263-
FooControllerEvent['type']
264-
>({
274+
const composableControllerMessenger = controllerMessenger.getRestricted({
265275
name: 'ComposableController',
266276
allowedActions: [],
267277
allowedEvents: ['FooController:stateChange'],
268278
});
269-
new ComposableController({
279+
new ComposableController<ComposableControllerState>({
270280
controllers: [fooController],
271281
messenger: composableControllerMessenger,
272282
});
@@ -289,58 +299,61 @@ describe('ComposableController', () => {
289299

290300
describe('Mixed BaseControllerV1 and BaseControllerV2', () => {
291301
it('should compose controller state', () => {
302+
type ComposableControllerState = {
303+
BarController: BarControllerState;
304+
FooController: FooControllerState;
305+
};
292306
const barController = new BarController();
293307
const controllerMessenger = new ControllerMessenger<
294308
never,
295-
FooControllerEvent
309+
| ComposableControllerEvents<ComposableControllerState>
310+
| FooControllerEvent
296311
>();
297312
const fooControllerMessenger = controllerMessenger.getRestricted({
298313
name: 'FooController',
299314
allowedActions: [],
300315
allowedEvents: [],
301316
});
302317
const fooController = new FooController(fooControllerMessenger);
303-
const composableControllerMessenger = controllerMessenger.getRestricted<
304-
'ComposableController',
305-
never,
306-
FooControllerEvent['type']
307-
>({
318+
const composableControllerMessenger = controllerMessenger.getRestricted({
308319
name: 'ComposableController',
309320
allowedActions: [],
310321
allowedEvents: ['FooController:stateChange'],
311322
});
312-
const composableController = new ComposableController({
313-
controllers: [barController, fooController],
314-
messenger: composableControllerMessenger,
315-
});
323+
const composableController =
324+
new ComposableController<ComposableControllerState>({
325+
controllers: [barController, fooController],
326+
messenger: composableControllerMessenger,
327+
});
316328
expect(composableController.state).toStrictEqual({
317329
BarController: { bar: 'bar' },
318330
FooController: { foo: 'foo' },
319331
});
320332
});
321333

322334
it('should notify listeners of BaseControllerV1 state change', () => {
335+
type ComposableControllerState = {
336+
BarController: BarControllerState;
337+
FooController: FooControllerState;
338+
};
323339
const barController = new BarController();
324340
const controllerMessenger = new ControllerMessenger<
325341
never,
326-
ComposableControllerEvents | FooControllerEvent
342+
| ComposableControllerEvents<ComposableControllerState>
343+
| FooControllerEvent
327344
>();
328345
const fooControllerMessenger = controllerMessenger.getRestricted({
329346
name: 'FooController',
330347
allowedActions: [],
331348
allowedEvents: [],
332349
});
333350
const fooController = new FooController(fooControllerMessenger);
334-
const composableControllerMessenger = controllerMessenger.getRestricted<
335-
'ComposableController',
336-
never,
337-
FooControllerEvent['type']
338-
>({
351+
const composableControllerMessenger = controllerMessenger.getRestricted({
339352
name: 'ComposableController',
340353
allowedActions: [],
341354
allowedEvents: ['FooController:stateChange'],
342355
});
343-
new ComposableController({
356+
new ComposableController<ComposableControllerState>({
344357
controllers: [barController, fooController],
345358
messenger: composableControllerMessenger,
346359
});
@@ -363,27 +376,28 @@ describe('ComposableController', () => {
363376
});
364377

365378
it('should notify listeners of BaseControllerV2 state change', () => {
379+
type ComposableControllerState = {
380+
BarController: BarControllerState;
381+
FooController: FooControllerState;
382+
};
366383
const barController = new BarController();
367384
const controllerMessenger = new ControllerMessenger<
368385
never,
369-
ComposableControllerEvents | FooControllerEvent
386+
| ComposableControllerEvents<ComposableControllerState>
387+
| FooControllerEvent
370388
>();
371389
const fooControllerMessenger = controllerMessenger.getRestricted({
372390
name: 'FooController',
373391
allowedActions: [],
374392
allowedEvents: [],
375393
});
376394
const fooController = new FooController(fooControllerMessenger);
377-
const composableControllerMessenger = controllerMessenger.getRestricted<
378-
'ComposableController',
379-
never,
380-
FooControllerEvent['type']
381-
>({
395+
const composableControllerMessenger = controllerMessenger.getRestricted({
382396
name: 'ComposableController',
383397
allowedActions: [],
384398
allowedEvents: ['FooController:stateChange'],
385399
});
386-
new ComposableController({
400+
new ComposableController<ComposableControllerState>({
387401
controllers: [barController, fooController],
388402
messenger: composableControllerMessenger,
389403
});
@@ -428,22 +442,22 @@ describe('ComposableController', () => {
428442
});
429443

430444
it('should throw if composing a controller that does not extend from BaseController', () => {
445+
type ComposableControllerState = {
446+
FooController: FooControllerState;
447+
};
431448
const notController = new JsonRpcEngine();
432449
const controllerMessenger = new ControllerMessenger<
433450
never,
434-
FooControllerEvent
451+
| ComposableControllerEvents<ComposableControllerState>
452+
| FooControllerEvent
435453
>();
436454
const fooControllerMessenger = controllerMessenger.getRestricted({
437455
name: 'FooController',
438456
allowedActions: [],
439457
allowedEvents: [],
440458
});
441459
const fooController = new FooController(fooControllerMessenger);
442-
const composableControllerMessenger = controllerMessenger.getRestricted<
443-
'ComposableController',
444-
never,
445-
FooControllerEvent['type']
446-
>({
460+
const composableControllerMessenger = controllerMessenger.getRestricted({
447461
name: 'ComposableController',
448462
allowedActions: [],
449463
allowedEvents: ['FooController:stateChange'],

0 commit comments

Comments
 (0)