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 forEach error #10194

Merged
merged 6 commits into from
Feb 10, 2025
Merged

Fix forEach error #10194

merged 6 commits into from
Feb 10, 2025

Conversation

aaemnnosttv
Copy link
Collaborator

@aaemnnosttv aaemnnosttv commented Feb 7, 2025

Summary

Addresses issue:


Important

This PR now targets develop


PR Author Checklist

  • My code is tested and passes existing unit tests.
  • My code has an appropriate set of unit tests which all pass.
  • My code is backward-compatible with WordPress 5.2 and PHP 7.4.
  • My code follows the WordPress coding standards.
  • My code has proper inline documentation.
  • I have added a QA Brief on the issue linked above.
  • I have signed the Contributor License Agreement (see https://cla.developers.google.com/).

Do not alter or remove anything below. The following sections will be managed by moderators only.

Code Reviewer Checklist

  • Run the code.
  • Ensure the acceptance criteria are satisfied.
  • Reassess the implementation with the IB.
  • Ensure no unrelated changes are included.
  • Ensure CI checks pass.
  • Check Storybook where applicable.
  • Ensure there is a QA Brief.
  • Ensure there are no unexpected significant changes to file sizes.

Merge Reviewer Checklist

  • Ensure the PR has the correct target branch.
  • Double-check that the PR is okay to be merged.
  • Ensure the corresponding issue has a ZenHub release assigned.
  • Add a changelog message to the issue.

Copy link

github-actions bot commented Feb 7, 2025

Build files for 93b4390 have been deleted.

Copy link

github-actions bot commented Feb 7, 2025

Size Change: +121 B (+0.01%)

Total Size: 2 MB

Filename Size Change
./dist/assets/js/googlesitekit-datastore-site-********************.js 20.2 kB +2 B (+0.01%)
./dist/assets/js/googlesitekit-entity-dashboard-********************.js 82.8 kB +1 B (0%)
./dist/assets/js/googlesitekit-main-dashboard-********************.js 163 kB +1 B (0%)
./dist/assets/js/googlesitekit-modules-ads-********************.js 36 kB +1 B (0%)
./dist/assets/js/googlesitekit-modules-adsense-********************.js 119 kB +62 B (+0.05%)
./dist/assets/js/googlesitekit-modules-analytics-4-********************.js 192 kB +1 B (0%)
./dist/assets/js/googlesitekit-modules-reader-revenue-manager-********************.js 41.1 kB +2 B (0%)
./dist/assets/js/googlesitekit-modules-sign-in-with-google-********************.js 32.4 kB -1 B (0%)
./dist/assets/js/googlesitekit-notifications-********************.js 43.3 kB +1 B (0%)
./dist/assets/js/googlesitekit-settings-********************.js 128 kB +1 B (0%)
./dist/assets/js/googlesitekit-splash-********************.js 68.7 kB -2 B (0%)
./dist/assets/js/googlesitekit-user-input-********************.js 43.9 kB +1 B (0%)
./dist/assets/js/googlesitekit-vendor-********************.js 325 kB +5 B (0%)
./dist/assets/js/googlesitekit-wp-dashboard-********************.js 63.4 kB +46 B (+0.07%)
ℹ️ View Unchanged
Filename Size
./dist/assets/css/googlesitekit-admin-css-********************.min.css 62.5 kB
./dist/assets/css/googlesitekit-adminbar-css-********************.min.css 11.8 kB
./dist/assets/css/googlesitekit-authorize-application-css-********************.min.css 846 B
./dist/assets/css/googlesitekit-wp-dashboard-css-********************.min.css 8.48 kB
./dist/assets/js/33-********************.js 2.76 kB
./dist/assets/js/34-********************.js 2.25 kB
./dist/assets/js/35-********************.js 3.64 kB
./dist/assets/js/36-********************.js 936 B
./dist/assets/js/37-********************.js 892 B
./dist/assets/js/38-********************.js 1.61 kB
./dist/assets/js/39-********************.js 1.57 kB
./dist/assets/js/40-********************.js 1.61 kB
./dist/assets/js/41-********************.js 1.59 kB
./dist/assets/js/42-********************.js 1.83 kB
./dist/assets/js/43-********************.js 3.12 kB
./dist/assets/js/analytics-advanced-tracking-********************.js 901 B
./dist/assets/js/googlesitekit-activation-********************.js 24.1 kB
./dist/assets/js/googlesitekit-ad-blocking-recovery-********************.js 54.1 kB
./dist/assets/js/googlesitekit-adminbar-********************.js 35 kB
./dist/assets/js/googlesitekit-api-********************.js 10.1 kB
./dist/assets/js/googlesitekit-components-gm2-********************.js 6.41 kB
./dist/assets/js/googlesitekit-components-gm3-********************.js 10.1 kB
./dist/assets/js/googlesitekit-consent-mode-********************.js 25.6 kB
./dist/assets/js/googlesitekit-data-********************.js 2.38 kB
./dist/assets/js/googlesitekit-datastore-forms-********************.js 8.96 kB
./dist/assets/js/googlesitekit-datastore-location-********************.js 2.09 kB
./dist/assets/js/googlesitekit-datastore-ui-********************.js 10 kB
./dist/assets/js/googlesitekit-datastore-user-********************.js 28.2 kB
./dist/assets/js/googlesitekit-events-provider-contact-form-7-********************.js 646 B
./dist/assets/js/googlesitekit-events-provider-easy-digital-downloads-********************.js 624 B
./dist/assets/js/googlesitekit-events-provider-mailchimp-********************.js 630 B
./dist/assets/js/googlesitekit-events-provider-ninja-forms-********************.js 712 B
./dist/assets/js/googlesitekit-events-provider-optin-monster-********************.js 675 B
./dist/assets/js/googlesitekit-events-provider-popup-maker-********************.js 634 B
./dist/assets/js/googlesitekit-events-provider-woocommerce-********************.js 657 B
./dist/assets/js/googlesitekit-events-provider-wpforms-********************.js 633 B
./dist/assets/js/googlesitekit-i18n-********************.js 3.93 kB
./dist/assets/js/googlesitekit-metric-selection-********************.js 52 kB
./dist/assets/js/googlesitekit-modules-********************.js 22.4 kB
./dist/assets/js/googlesitekit-modules-pagespeed-insights-********************.js 22.7 kB
./dist/assets/js/googlesitekit-modules-search-console-********************.js 69.4 kB
./dist/assets/js/googlesitekit-modules-tagmanager-********************.js 32.1 kB
./dist/assets/js/googlesitekit-polyfills-********************.js 378 B
./dist/assets/js/googlesitekit-reader-revenue-manager-block-editor-********************.js 477 B
./dist/assets/js/googlesitekit-widgets-********************.js 104 kB
./dist/assets/js/runtime-********************.js 1.4 kB

compressed-size-action

Copy link
Collaborator Author

@aaemnnosttv aaemnnosttv left a comment

Choose a reason for hiding this comment

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

Most of the changes here are in test files. Hiding whitespace changes may also be useful to enable.

@@ -73,7 +70,7 @@ const fetchGetAccountSummariesStore = createFetchStore( {
...state,
accountSummaries: [
...( state.accountSummaries || [] ),
...( response.accountSummaries || [] ),
...populateAccountSummaries( response.accountSummaries || [] ),
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

This fixes a potential bug where findMatchedProperty could be invoked after account summaries had been received, but before they had been transformed/populated with their IDs which happened in an action once all AS's had been received. This resulted in all propertyIDs being undefined and obviously caused problems with proper matching. That wasn't really necessary, as only the sorting needs to be done at the end.

} );
} );
summaries.forEach(
( { _id: accountID, propertySummaries = [] } ) => {
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

This fallback to the empty array was the main initial fix as the key isn't always defined in the accountSummary if there are no properties. This is no longer the case however as populateAccountSummaries will ensure every AS has propertySummaries defined.

@@ -118,119 +122,176 @@ describe( 'getAccountDefaults', () => {
).toHaveProperty( ENHANCED_MEASUREMENT_ENABLED, true );
} );
} );
} );
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Previously the added populate* describe blocks were nested under getAccountDefaults. This fixes the grouping as well. Toggle "hide whitespace" (?w=1) to make reviewing this part easier.

@aaemnnosttv aaemnnosttv mentioned this pull request Feb 7, 2025
19 tasks
{ _id: '1122334455' },
{ _id: '1122334456' },
{ _id: '1122334457' },
{ property: 'properties/1122334455' },
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

This is necessary because of the populating of ID that we do in the reducer callback for receiveGetAccountSummaries which will otherwise overwrite the pre-populated ID field here with undefined since the source property is missing. This was the only instance where this was needed so I opted to update the test instead of the populate utilities. It might be a good idea to preserve an existing/pre-populated ID in the future.

@aaemnnosttv aaemnnosttv changed the base branch from main to develop February 10, 2025 16:41
@aaemnnosttv aaemnnosttv changed the title Fix/10187-main-foreach-error Fix forEach error Feb 10, 2025
@tofumatt tofumatt merged commit 370ca1c into develop Feb 10, 2025
22 of 23 checks passed
@tofumatt tofumatt deleted the fix/10187-main-foreach-error branch February 10, 2025 22:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants