Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: Fix type errors in reducers #7147

Merged
merged 1 commit into from
Sep 6, 2023
Merged

fix: Fix type errors in reducers #7147

merged 1 commit into from
Sep 6, 2023

Conversation

Gudahtt
Copy link
Member

@Gudahtt Gudahtt commented Sep 6, 2023

Development & PR Process

  1. Follow MetaMask Mobile Coding Standards
  2. Add release-xx label to identify the PR slated for a upcoming release (will be used in release discussion)
  3. Add needs-dev-review label when work is completed
  4. Add the appropiate QA label when dev review is completed
    • needs-qa: PR requires manual QA.
    • No QA/E2E only: PR does not require any manual QA effort. Prior to merging, ensure that you have successful end-to-end test runs in Bitrise.
    • Spot check on release build: PR does not require feature QA but needs non-automated verification. In the description section, provide test scenarios. Add screenshots, and or recordings of what was tested.
  5. Add QA Passed label when QA has signed off (Only required if the PR was labeled with needs-qa)
  6. Add your team's label, i.e. label starting with team- (or external-contributor label if your not a MetaMask employee)

Description

All type errors in the reducers have been fixed. An error in the EngineState type was exposed during this process as well, and has also been fixed (the PermissionControllerState was resolving to never because the wrong type parameter was passed in).

The fiatOrders unit tests used selectors quite a lot, so there was a need for a mock/initial root state shape. This was introduced in the app/util/test directory for use in unit tests. This initial state object represents just the minimal initial state that has been typed so far. After we migrate all reducers to TypeScript and fix their types, this state object will become increasingly complete/correct.

Issue

This is a follow-up to #7110, which laid the groundwork for these type fixes but also introduced some of them accidentally.

Checklist

  • There is a related GitHub issue
  • Tests are included if applicable
  • Any added code is fully documented

@Gudahtt Gudahtt marked this pull request as ready for review September 6, 2023 12:39
@Gudahtt Gudahtt requested a review from a team as a code owner September 6, 2023 12:39
@Gudahtt Gudahtt added needs-dev-review PR needs reviews from other engineers (in order to receive required approvals) team-mobile-platform labels Sep 6, 2023
@codecov-commenter
Copy link

codecov-commenter commented Sep 6, 2023

Codecov Report

Patch coverage: 100.00% and project coverage change: -0.41% ⚠️

Comparison is base (9cf645e) 32.75% compared to head (e0179d4) 32.34%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #7147      +/-   ##
==========================================
- Coverage   32.75%   32.34%   -0.41%     
==========================================
  Files        1006     1006              
  Lines       26957    26957              
  Branches     2128     2128              
==========================================
- Hits         8829     8719     -110     
- Misses      17701    17809     +108     
- Partials      427      429       +2     
Files Changed Coverage Δ
app/components/UI/Ramp/utils/index.ts 95.74% <ø> (ø)
app/core/Engine.ts 53.42% <ø> (ø)
app/reducers/security/index.ts 44.44% <100.00%> (ø)

... and 1 file with indirect coverage changes

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@Gudahtt Gudahtt force-pushed the fix-reducer-type-errors branch 4 times, most recently from 3141bea to 9ff03aa Compare September 6, 2023 14:19
All type errors in the reducers have been fixed. An error in the
EngineState type was exposed during this process as well, and has also
been fixed (the `PermissionControllerState` was resolving to `never`
because the wrong type parameter was passed in).

The `fiatOrders` unit tests used selectors quite a lot, so there was a
need for a mock/initial root state shape. This was introduced in the
`app/util/test` directory for use in unit tests. This initial state
object represents just the minimal initial state that has been typed so
far. After we migrate all reducers to TypeScript and fix their types,
this state object will become increasingly complete/correct.

This is a follow-up to #7110, which laid the groundwork for these type
fixes but also introduced some of them accidentally.
@sonarcloud
Copy link

sonarcloud bot commented Sep 6, 2023

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

33.3% 33.3% Coverage
0.0% 0.0% Duplication

warning The version of Java (11.0.20) you have used to run this analysis is deprecated and we will stop accepting it soon. Please update to at least Java 17.
Read more here

@Gudahtt Gudahtt added the No QA Needed/E2E Only Apply this label when your PR does not need any QA effort. label Sep 6, 2023
@Gudahtt
Copy link
Member Author

Gudahtt commented Sep 6, 2023

Copy link
Contributor

@Cal-L Cal-L left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Gudahtt Gudahtt removed the needs-dev-review PR needs reviews from other engineers (in order to receive required approvals) label Sep 6, 2023
@Gudahtt Gudahtt merged commit 3ae4a10 into main Sep 6, 2023
14 checks passed
@Gudahtt Gudahtt deleted the fix-reducer-type-errors branch September 6, 2023 17:02
@github-actions github-actions bot locked and limited conversation to collaborators Sep 6, 2023
@metamaskbot metamaskbot added the release-7.8.0 Issue or pull request that will be included in release 7.8.0 label Sep 6, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
No QA Needed/E2E Only Apply this label when your PR does not need any QA effort. release-7.8.0 Issue or pull request that will be included in release 7.8.0 team-mobile-platform
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants