Skip to content

Commit 752701c

Browse files
committed
Add metadata unit tests
1 parent 22c4087 commit 752701c

File tree

5 files changed

+372
-5
lines changed

5 files changed

+372
-5
lines changed

packages/account-tree-controller/src/AccountTreeController.test.ts

Lines changed: 74 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
toMultichainAccountWalletId,
99
type AccountGroupId,
1010
} from '@metamask/account-api';
11-
import { Messenger } from '@metamask/base-controller';
11+
import { Messenger, deriveStateFromMetadata } from '@metamask/base-controller';
1212
import {
1313
EthAccountType,
1414
EthMethod,
@@ -2635,4 +2635,77 @@ describe('AccountTreeController', () => {
26352635
expect(selectedAccountGroupChangeListener).not.toHaveBeenCalled();
26362636
});
26372637
});
2638+
2639+
describe('metadata', () => {
2640+
it('includes expected state in debug snapshots', () => {
2641+
const { controller } = setup();
2642+
2643+
expect(
2644+
deriveStateFromMetadata(
2645+
controller.state,
2646+
controller.metadata,
2647+
'anonymous',
2648+
),
2649+
).toMatchInlineSnapshot(`Object {}`);
2650+
});
2651+
2652+
it('includes expected state in state logs', () => {
2653+
const { controller } = setup();
2654+
2655+
expect(
2656+
deriveStateFromMetadata(
2657+
controller.state,
2658+
controller.metadata,
2659+
'includeInStateLogs',
2660+
),
2661+
).toMatchInlineSnapshot(`
2662+
Object {
2663+
"accountGroupsMetadata": Object {},
2664+
"accountTree": Object {
2665+
"selectedAccountGroup": "",
2666+
"wallets": Object {},
2667+
},
2668+
"accountWalletsMetadata": Object {},
2669+
}
2670+
`);
2671+
});
2672+
2673+
it('persists expected state', () => {
2674+
const { controller } = setup();
2675+
2676+
expect(
2677+
deriveStateFromMetadata(
2678+
controller.state,
2679+
controller.metadata,
2680+
'persist',
2681+
),
2682+
).toMatchInlineSnapshot(`
2683+
Object {
2684+
"accountGroupsMetadata": Object {},
2685+
"accountWalletsMetadata": Object {},
2686+
}
2687+
`);
2688+
});
2689+
2690+
it('exposes expected state to UI', () => {
2691+
const { controller } = setup();
2692+
2693+
expect(
2694+
deriveStateFromMetadata(
2695+
controller.state,
2696+
controller.metadata,
2697+
'usedInUi',
2698+
),
2699+
).toMatchInlineSnapshot(`
2700+
Object {
2701+
"accountGroupsMetadata": Object {},
2702+
"accountTree": Object {
2703+
"selectedAccountGroup": "",
2704+
"wallets": Object {},
2705+
},
2706+
"accountWalletsMetadata": Object {},
2707+
}
2708+
`);
2709+
});
2710+
});
26382711
});

packages/accounts-controller/src/AccountsController.test.ts

Lines changed: 73 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Messenger } from '@metamask/base-controller';
1+
import { Messenger, deriveStateFromMetadata } from '@metamask/base-controller';
22
import { InfuraNetworkType } from '@metamask/controller-utils';
33
import type {
44
AccountAssetListUpdatedEventPayload,
@@ -269,7 +269,7 @@ function setupAccountsController({
269269
AccountsControllerActions | AllowedActions,
270270
AccountsControllerEvents | AllowedEvents
271271
>;
272-
}): {
272+
} = {}): {
273273
accountsController: AccountsController;
274274
messenger: Messenger<
275275
AccountsControllerActions | AllowedActions,
@@ -3839,4 +3839,75 @@ describe('AccountsController', () => {
38393839
});
38403840
});
38413841
});
3842+
3843+
describe('metadata', () => {
3844+
it('includes expected state in debug snapshots', () => {
3845+
const { accountsController: controller } = setupAccountsController();
3846+
3847+
expect(
3848+
deriveStateFromMetadata(
3849+
controller.state,
3850+
controller.metadata,
3851+
'anonymous',
3852+
),
3853+
).toMatchInlineSnapshot(`Object {}`);
3854+
});
3855+
3856+
it('includes expected state in state logs', () => {
3857+
const { accountsController: controller } = setupAccountsController();
3858+
3859+
expect(
3860+
deriveStateFromMetadata(
3861+
controller.state,
3862+
controller.metadata,
3863+
'includeInStateLogs',
3864+
),
3865+
).toMatchInlineSnapshot(`
3866+
Object {
3867+
"internalAccounts": Object {
3868+
"accounts": Object {},
3869+
"selectedAccount": "",
3870+
},
3871+
}
3872+
`);
3873+
});
3874+
3875+
it('persists expected state', () => {
3876+
const { accountsController: controller } = setupAccountsController();
3877+
3878+
expect(
3879+
deriveStateFromMetadata(
3880+
controller.state,
3881+
controller.metadata,
3882+
'persist',
3883+
),
3884+
).toMatchInlineSnapshot(`
3885+
Object {
3886+
"internalAccounts": Object {
3887+
"accounts": Object {},
3888+
"selectedAccount": "",
3889+
},
3890+
}
3891+
`);
3892+
});
3893+
3894+
it('exposes expected state to UI', () => {
3895+
const { accountsController: controller } = setupAccountsController();
3896+
3897+
expect(
3898+
deriveStateFromMetadata(
3899+
controller.state,
3900+
controller.metadata,
3901+
'usedInUi',
3902+
),
3903+
).toMatchInlineSnapshot(`
3904+
Object {
3905+
"internalAccounts": Object {
3906+
"accounts": Object {},
3907+
"selectedAccount": "",
3908+
},
3909+
}
3910+
`);
3911+
});
3912+
});
38423913
});

packages/multichain-transactions-controller/src/MultichainTransactionsController.test.ts

Lines changed: 63 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Messenger } from '@metamask/base-controller';
1+
import { deriveStateFromMetadata, Messenger } from '@metamask/base-controller';
22
import type {
33
AccountTransactionsUpdatedEventPayload,
44
CaipAssetType,
@@ -951,4 +951,66 @@ describe('MultichainTransactionsController', () => {
951951
transactions[1],
952952
);
953953
});
954+
955+
describe('metadata', () => {
956+
it('includes expected state in debug snapshots', () => {
957+
const { controller } = setupController();
958+
959+
expect(
960+
deriveStateFromMetadata(
961+
controller.state,
962+
controller.metadata,
963+
'anonymous',
964+
),
965+
).toMatchInlineSnapshot(`Object {}`);
966+
});
967+
968+
it('includes expected state in state logs', () => {
969+
const { controller } = setupController();
970+
971+
expect(
972+
deriveStateFromMetadata(
973+
controller.state,
974+
controller.metadata,
975+
'includeInStateLogs',
976+
),
977+
).toMatchInlineSnapshot(`
978+
Object {
979+
"nonEvmTransactions": Object {},
980+
}
981+
`);
982+
});
983+
984+
it('persists expected state', () => {
985+
const { controller } = setupController();
986+
987+
expect(
988+
deriveStateFromMetadata(
989+
controller.state,
990+
controller.metadata,
991+
'persist',
992+
),
993+
).toMatchInlineSnapshot(`
994+
Object {
995+
"nonEvmTransactions": Object {},
996+
}
997+
`);
998+
});
999+
1000+
it('exposes expected state to UI', () => {
1001+
const { controller } = setupController();
1002+
1003+
expect(
1004+
deriveStateFromMetadata(
1005+
controller.state,
1006+
controller.metadata,
1007+
'usedInUi',
1008+
),
1009+
).toMatchInlineSnapshot(`
1010+
Object {
1011+
"nonEvmTransactions": Object {},
1012+
}
1013+
`);
1014+
});
1015+
});
9541016
});

packages/profile-sync-controller/src/controllers/authentication/AuthenticationController.test.ts

Lines changed: 75 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Messenger } from '@metamask/base-controller';
1+
import { Messenger, deriveStateFromMetadata } from '@metamask/base-controller';
22

33
import AuthenticationController from './AuthenticationController';
44
import type {
@@ -513,6 +513,80 @@ describe('authentication/authentication-controller - isSignedIn() tests', () =>
513513
});
514514
});
515515

516+
describe('metadata', () => {
517+
it('includes expected state in debug snapshots', () => {
518+
const controller = new AuthenticationController({
519+
messenger: createMockAuthenticationMessenger().messenger,
520+
metametrics: createMockAuthMetaMetrics(),
521+
});
522+
523+
expect(
524+
deriveStateFromMetadata(
525+
controller.state,
526+
controller.metadata,
527+
'anonymous',
528+
),
529+
).toMatchInlineSnapshot(`
530+
Object {
531+
"isSignedIn": false,
532+
}
533+
`);
534+
});
535+
536+
it('includes expected state in state logs', () => {
537+
const controller = new AuthenticationController({
538+
messenger: createMockAuthenticationMessenger().messenger,
539+
metametrics: createMockAuthMetaMetrics(),
540+
});
541+
542+
expect(
543+
deriveStateFromMetadata(
544+
controller.state,
545+
controller.metadata,
546+
'includeInStateLogs',
547+
),
548+
).toMatchInlineSnapshot(`
549+
Object {
550+
"isSignedIn": false,
551+
}
552+
`);
553+
});
554+
555+
it('persists expected state', () => {
556+
const controller = new AuthenticationController({
557+
messenger: createMockAuthenticationMessenger().messenger,
558+
metametrics: createMockAuthMetaMetrics(),
559+
});
560+
561+
expect(
562+
deriveStateFromMetadata(controller.state, controller.metadata, 'persist'),
563+
).toMatchInlineSnapshot(`
564+
Object {
565+
"isSignedIn": false,
566+
}
567+
`);
568+
});
569+
570+
it('exposes expected state to UI', () => {
571+
const controller = new AuthenticationController({
572+
messenger: createMockAuthenticationMessenger().messenger,
573+
metametrics: createMockAuthMetaMetrics(),
574+
});
575+
576+
expect(
577+
deriveStateFromMetadata(
578+
controller.state,
579+
controller.metadata,
580+
'usedInUi',
581+
),
582+
).toMatchInlineSnapshot(`
583+
Object {
584+
"isSignedIn": false,
585+
}
586+
`);
587+
});
588+
});
589+
516590
/**
517591
* Jest Test Utility - create Auth Messenger
518592
*

0 commit comments

Comments
 (0)