{"version":3,"file":"providers.cjs","sourceRoot":"","sources":["../../src/tests/providers.ts"],"names":[],"mappings":";AAAA,wCAAwC;;;AAGxC,uDAAuD;AAWvD,SAAgB,uBAAuB,CACrC,WAA6B,EAAE;IAE/B,OAAO;QACL,QAAQ;QACR,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE;QACrB,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE;QACtB,cAAc,EAAE,IAAI,CAAC,EAAE,EAAE;QACzB,yBAAyB,EAAE,IAAI,CAAC,EAAE,EAAE;KACrC,CAAC;AACJ,CAAC;AAVD,0DAUC;AAED,SAAgB,oBAAoB,CAAC,EACnC,QAAQ,EACR,KAAK,GAAG,uBAAuB,EAAE,EACjC,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,GAKpB;IACC,8DAA8D;IAC9D,eAAe;IACf,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAE1B,MAAM,WAAW,GAAG,GAAG,EAAE,CACvB,KAAK,CAAC,QAAQ,CAAC,MAAM,CACnB,CAAC,OAAO,EAAE,EAAE,CAAC,IAAA,4BAAc,EAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CACxD,CAAC;IAEJ,KAAK,CAAC,WAAW,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAClD,KAAK,CAAC,UAAU,CAAC,kBAAkB,CACjC,CAAC,EAAsC,EAAE,EAAE;IACzC,6BAA6B;IAC7B,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CACrD,CAAC;IAEF,OAAO,KAAK,CAAC;AACf,CAAC;AA1BD,oDA0BC","sourcesContent":["/* eslint-disable jsdoc/require-jsdoc */\n\nimport type { Bip44Account } from '@metamask/account-api';\nimport { isBip44Account } from '@metamask/account-api';\nimport type { KeyringAccount } from '@metamask/keyring-api';\n\nexport type MockAccountProvider = {\n  accounts: KeyringAccount[];\n  getAccount: jest.Mock;\n  getAccounts: jest.Mock;\n  createAccounts: jest.Mock;\n  discoverAndCreateAccounts: jest.Mock;\n};\n\nexport function makeMockAccountProvider(\n  accounts: KeyringAccount[] = [],\n): MockAccountProvider {\n  return {\n    accounts,\n    getAccount: jest.fn(),\n    getAccounts: jest.fn(),\n    createAccounts: jest.fn(),\n    discoverAndCreateAccounts: jest.fn(),\n  };\n}\n\nexport function setupAccountProvider({\n  accounts,\n  mocks = makeMockAccountProvider(),\n  filter = () => true,\n}: {\n  mocks?: MockAccountProvider;\n  accounts: KeyringAccount[];\n  filter?: (account: KeyringAccount) => boolean;\n}): MockAccountProvider {\n  // You can mock this and all other mocks will re-use that list\n  // of accounts.\n  mocks.accounts = accounts;\n\n  const getAccounts = () =>\n    mocks.accounts.filter(\n      (account) => isBip44Account(account) && filter(account),\n    );\n\n  mocks.getAccounts.mockImplementation(getAccounts);\n  mocks.getAccount.mockImplementation(\n    (id: Bip44Account<KeyringAccount>['id']) =>\n      // Assuming this never fails.\n      getAccounts().find((account) => account.id === id),\n  );\n\n  return mocks;\n}\n"]}