1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-22 01:47:00 +01:00
metamask-extension/app
Elliot Winkler 24eae1d3c6
Use fake provider for NetworkController unit tests (#18628)
* Use fake provider for NetworkController unit tests

In the unit tests for NetworkController, it's important to prevent
network requests from occurring. Currently we do that by using Nock.
However, the `core` version of NetworkController uses a fake provider
object. This is arguably a better approach for unit tests because it
prevents us from having to think about the behavior that a specific
middleware may have. For instance, the Infura middleware intercepts
`eth_chainId` to return a static result, and the block cache middleware
replaces the `latest` block tag with the latest block number, making an
extra call to `eth_blockNumber` in doing so. We have to account for
these kinds of behaviors when using Nock, but we do not need to do this
when using a fake provider.

This should make it easier to compare the difference between the unit
tests in this repo vs. in the `core` repo, which should ultimately help
us merge the two controllers together.

* Rename fake-provider-engine to fake-provider

* Rearrange imports

* Move fake-provider and fake-block-tracker into a directory and exclude it from coverage

* Make FakeBlockTracker inert, and fix JSDocs

* Remove generics from FakeProvider

* Call beforeCompleting (and beforeResolving) using async/await

* Fix signature of sendAsync; align other signatures within FakeProvider

* No need to check whether error is not a string

* Don't exclude the provider-api-tests directory from coverage

* Make sure to mock both net_version and eth_getBlockByNumber when testing network status

* Fix FakeProvider so that none of the methods have optional callbacks
2023-04-20 15:21:41 -02:30
..
_locales Remove mobile sync feature (#18692) 2023-04-20 14:29:30 -02:30
build-types removes unnecessary images (#18484) 2023-04-06 15:32:01 +01:00
fonts UI-14395: typography v2 (#15408) 2022-08-18 10:51:53 -07:00
images UX Multichain: updated ethereum logo icon (#18528) 2023-04-19 20:55:19 +05:30
manifest Revert "Fix(18190): add tabs to permission when initializing app (#18218)" (#18336) 2023-03-29 20:11:08 +01:00
scripts Use fake provider for NetworkController unit tests (#18628) 2023-04-20 15:21:41 -02:30
vendor/trezor Update postMessage structure for TrezorConnect 8 (#10192) 2021-01-21 11:12:54 -06:00
background.html Integrating snow into metamask (#15580) 2022-11-24 02:36:19 +02:00
home.html [MMI] Conditional change title in home if buildType is MMI (#17898) 2023-03-02 10:18:46 -06:00
loading.html refactor & change html pages 2019-05-04 18:57:19 +02:00
notification.html Integrating snow into metamask (#15580) 2022-11-24 02:36:19 +02:00
popup.html Integrating snow into metamask (#15580) 2022-11-24 02:36:19 +02:00
trezor-usb-permissions.html chore: Adjust trailing whitespace (#15636) 2022-08-24 14:11:49 -05:00