@metamask/multichain-account-service
Version:
Service to manage multichain accounts
28 lines • 1.2 kB
JavaScript
;
/* eslint-disable jsdoc/require-jsdoc */
Object.defineProperty(exports, "__esModule", { value: true });
exports.setupAccountProvider = exports.makeMockAccountProvider = void 0;
const account_api_1 = require("@metamask/account-api");
function makeMockAccountProvider(accounts = []) {
return {
accounts,
getAccount: jest.fn(),
getAccounts: jest.fn(),
createAccounts: jest.fn(),
discoverAndCreateAccounts: jest.fn(),
};
}
exports.makeMockAccountProvider = makeMockAccountProvider;
function setupAccountProvider({ accounts, mocks = makeMockAccountProvider(), filter = () => true, }) {
// You can mock this and all other mocks will re-use that list
// of accounts.
mocks.accounts = accounts;
const getAccounts = () => mocks.accounts.filter((account) => (0, account_api_1.isBip44Account)(account) && filter(account));
mocks.getAccounts.mockImplementation(getAccounts);
mocks.getAccount.mockImplementation((id) =>
// Assuming this never fails.
getAccounts().find((account) => account.id === id));
return mocks;
}
exports.setupAccountProvider = setupAccountProvider;
//# sourceMappingURL=providers.cjs.map