MetaMask / MetaMask/core

Improve unit tests

Abierto
#413 0 comentarios 3 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

team-wallet-framework wf-test-quality-improvement
Lenguaje dominante
TypeScript
Estrellas
413
Forks
308
Merge medio
1 d 4 h
PR fusionados (30 d)
253

Descripción

This is a tracking issue for improving unit tests in various ways.

Related issues:

- #1
- #744
- #745
- #746
- #748
- #493
- #749
- #750
- #743

Some general advice: writing unit tests should be easy. They may be verbose and time consuming to write, but they should be easy. If it's not easy, change the API under test to make it easy.

Many of the APIs in this repository make unit testing difficult. Your time is better spent improving the API first and writing simple unit tests, rather than struggling to write complex tests for a complex API. Consider ways to reduce the API surface, reduce dependencies, inject dependencies to simplify stubbing, and move complex functionality into separate modules.

Tracker by module:

Check off each module as they are audited for each of the criteria outlined above.

- [ ] ./src/announcement/AnnouncementController.test.ts
- [ ] ./src/permissions/Caveat.test.ts
- [ ] ./src/permissions/PermissionController.test.ts
- [ ] ./src/permissions/rpc-methods/requestPermissions.test.ts
- [ ] ./src/permissions/rpc-methods/getPermissions.test.ts
- [ ] ./src/permissions/errors.test.ts
- [ ] ./src/permissions/Permission.test.ts
- [ ] ./src/keyring/KeyringController.test.ts
- [ ] ./src/notification/NotificationController.test.ts
- [ ] ./src/third-party/EnsController.test.ts
- [ ] ./src/third-party/PhishingController.test.ts
- [ ] ./src/BaseControllerV2.test.ts
- [ ] ./src/message-manager/MessageManager.test.ts
- [ ] ./src/message-manager/AbstractMessageManager.test.ts
- [ ] ./src/message-manager/PersonalMessageManager.test.ts
- [ ] ./src/message-manager/TypedMessageManager.test.ts
- [ ] ./src/assets/AccountTrackerController.test.ts
- [ ] ./src/assets/AssetsContractController.test.ts
- [ ] ./src/assets/NftController.test.ts
- [ ] ./src/assets/assetsUtil.test.ts
- [ ] ./src/assets/CurrencyRateController.test.ts
- [ ] ./src/assets/TokenBalancesController.test.ts
- [ ] ./src/assets/TokenListController.test.ts
- [ ] ./src/assets/TokenDetectionController.test.ts
- [ ] ./src/assets/NftDetectionController.test.ts
- [ ] ./src/assets/TokensController.test.ts
- [ ] ./src/assets/TokenRatesController.test.ts
- [ ] ./src/assets/Standards/NftStandards/ERC721/ERC721Standard.test.ts
- [ ] ./src/assets/Standards/NftStandards/ERC1155/ERC1155Standard.test.ts
- [ ] ./src/assets/Standards/ERC20Standard.test.ts
- [ ] ./src/user/AddressBookController.test.ts
- [ ] ./src/user/PreferencesController.test.ts
- [ ] ./src/subject-metadata/SubjectMetadataController.test.ts
- [ ] ./src/network/NetworkController.test.ts
- [ ] ./src/ControllerMessenger.test.ts
- [ ] ./src/ratelimit/RateLimitController.test.ts
- [ ] ./src/gas/fetchGasEstimatesViaEthFeeHistory.test.ts
- [ ] ./src/gas/fetchGasEstimatesViaEthFeeHistory/calculateGasFeeEstimatesForPriorityLevels.test.ts
- [ ] ./src/gas/gas-util.test.ts
- [ ] ./src/gas/determineGasFeeCalculations.test.ts
- [ ] ./src/gas/fetchBlockFeeHistory.test.ts
- [ ] ./src/gas/GasFeeController.test.ts
- [ ] ./src/BaseController.test.ts
- [ ] ./src/ComposableController.test.ts
- [ ] ./src/transaction/TransactionController.test.ts
- [ ] ./src/util.test.ts
- [ ] ./src/apis/crypto-compare.test.ts
- [ ] ./src/apis/token-service.test.ts
- [ ] ./src/approval/ApprovalController.test.ts

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza eligiendo un archivo de prueba sin marcar del rastreador de módulos, como src/announcement/AnnouncementController.test.ts, y audita su API, dependencias, stubs y complejidad de las pruebas según las indicaciones del issue. Lee los issues relacionados para conocer el alcance antes de cambiar nada; se considera terminado cuando el módulo seleccionado ha sido auditado y su casilla puede marcarse como completada.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
typescript
Área
testing-qa
Tipo de issue
Refactorización
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
20/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.