Because:
* the `--split-by=timings` default type `file` and alternative type `name` are unsupported for the playwright junit xml file
This commit:
* adds the `--split-by=classname` option
Closes #FXA-9720
Because:
* we want to execute the functional tests in CI as fast as possible
This commit:
* matches parallelism to the number of cores for a resource_class (4 for large and 8 for xlarge)
* splits and refactors the misc/keyStretchingV2.spec module into:
* key-stretching-v2/totp.spec.ts
* key-stretching-v2/signinBlocked.spec.ts
* splits the oauth/oauthPermissions.spec.ts module into:
* oauth/oauthPermissionsSignin.spec.ts
* oauth/oauthPermissionsSignup.spec.ts
* splits part of the oauth/signin.spec.ts module into oauth/signinBlocked.spec.ts
* splits part of the react-conversion/oauthResetPassword.spec.ts module into:
* react-conversion/oauthResetPasswordRecoveryKey.spec.ts
* react-conversion/oauthResetPasswordScopeKey.spec.ts
* react-conversion/oauthResetPasswordSyncMobile.spec.ts
* splits part of the react-conversion/signup.spec.ts module into react-conversion/oauthSignup.spec.ts
* splits part of the settings/changeEmail.spec.ts module into settings/changeEmailBlocked.spec.ts
* splits part of the settings/changePassword.spec.ts module into settings/changePasswordValidation.spec.ts
* splits part of the subscription-tests/coupons-ui-tests/coupon.spec.ts module into:
* subscription-tests/coupons-ui-tests/couponExpired.spec.ts
* subscription-tests/coupons-ui-tests/couponForeverDiscount.spec.ts
* subscription-tests/coupons-ui-tests/couponInvalid.spec.ts
* subscription-tests/coupons-ui-tests/couponOneTimeDiscount.spec.ts
* splits part of the subscription-tests/coupons-ui-tests/resubscription.spec.ts module into subscription-tests/coupons-ui-tests/paymentMode.spec.ts
* splits part of the syncV3/fxDesktopHandshake.spec.ts module into syncV3/fxDesktopHandshakeNonSync.spec.ts
* splits part of the syncV3/fxDesktopV3ForceAuth.spec.ts module into syncV3/fxDesktopV3ForceAuthUnregistered.spec.ts
* splits part of the syncV3/signIn.spec.ts module into syncV3/oauthSignIn.spec.ts
* fixes confirmResetPasswordHeading error in react-conversion/resetPassword.spec.ts
Closes #FXA-9699
Because:
- We want to use the `cloud-tasks` nx lib that introduced last sprint
This commit
- Updates account end points to use the nx lib
- Updates CI to include cloud-task emulator
(cherry picked from commit 7c0c70d2a4)
Because:
- We want to use the `cloud-tasks` nx lib that introduced last sprint
This commit
- Updates account end points to use the nx lib
- Updates CI to include cloud-task emulator
Because:
* We want to update to Node 20 LTS.
* We want to target the JS output of Node 20.
* We want to use the latest TypeScript 5.4
This commit:
* Updates the Node version to 20 LTS.
* Updates the TypeScript version and related TS libs
to 5.4.
* Updates tsconfig for the new Node 20 target.
Because:
* Want to migrate Nx to latest
This commit:
* Migrate nx to 18 using nx cli migrate latest
* Readd a few dev dependancies back into packages/**/package.json
* Behavior of `npx nx...` commands seems to have changed, resulting in
multiple "command not found: <library>" errors, where <library>
refers to libaries used in packages/**/package.json scripts, such as
tailwindcss, tsc-alias, nx, etc.
* Updates nx cache location for Circle CI
Closes #FXA-8880
Because:
- We want to add support for up coming changes to key stretching in the auth server first
- We want to ensure all changes are backwards compatible
This Commit:
- Updates test to use approach for the client side stretch where:
- Stretch uses 650k iterations
- Client salt uses random value instead of user's original email
- Updates tests to run using both V1 and V2 credentials
- Updates database to support new columns for housing V2 credentials
- Updates account models accordingly
- Adds statsd metrics to track use of v2 credentials
- Updates CI tests to run remote integration tests for V2 credentials
Because:
* We have turned on the new account recovery key creation flow to 100% and now want to remove the old unused settings and content-server (post_verify/account_recovery) flows
This commit:
* Remove feature flag set up for old vs new account recovery key flow
* Remove all code related to old PageAddRecoveryKey in fxa-settings
* Remove all code related to old post_verify/acccount_recovery in content-server
* Test fixes
Closes #FXA-7419
Because:
- Styling in auth server storybooks was off
This Commit:
- Adds the email css folders to workspace
- Adds the locales folders to workspaces
- Updates the log level for gcp export so we can see what is being published
- Has `mozilla-fxa/storybook-gcp-publisher` to only publish, we now build ourselves with an nx command.
Because:
- We want to see if anything breaks
- Setting `CI: true` changes the behavior of tsc such that warnings result in a non-zero exit code
This Commit:
- Turns off overrides
Because:
* Experiment rollout to 100% of users was not working as expected
* We already have a feature flag that we can use to toggle the new flow on/off
This commit:
* Remove all code related to experiment rules for the new recovery key flow
* Keep feature flag for new flow
* Effectively rollout to 100% of traffic unless feature flag is turned off in an environment
Closes #FXA-8335
Because:
- In train-266 stage smoke tests failed because the auth-client build was missing
- The auth client used to be part of the docker image, but this changed now that we cache builds in nx.
This Commit:
- Builds auth client with nx prior to running smoke tests.
Because:
- Fixes projects param on integration tests in flows other than test_pull_request
- Defaults to large resource class for integration tests (for now)
Because:
- Not all CI operations where taking advantage of NX caches
This Commit:
- Adjusts nx.json config to ensure correct caching behavior
- Adjusts nx.json config to ensure proper target chains. ie build is dependent on pre-build
- Uses nx to directly run integration tests
- Uses nx to directly run unit tests
- Phases out dependency on generated .list files
- Ensures 'start up' for services for functional tests is done with nx and uses nx caches.
- Creates nx tags to facilitate test commands
- Fixes linter errors encountered
- Updates docker images to nx for builds
- Updates nx ignore files
Because:
* We want to use the latest typescript features.
This commit:
* Updates to TypeScript 5.2.2.
* Updates to Node 18.17.1 as OOM would occur frequently with 18.14.
* Updates CI to use a large instance with increased memory for Node.
Because:
- Refactor the Cart Manager to serve as higher level logic for the
cart db model.
This commit:
- Removes service level logic.
- Adds common methods to be used by Cart Manager consumers.
- Adds checks for valid state by action and valid state transitions.
- Reverts playwright tests back to xlarge instance size
Closes FXA-8128
Because:
- The CI already targets test-unit
- We want to draw a distinction between unit and integration tests.
This Commit:
- Renames "test" to "test-unit" in lib packages.
- Sets up CI to run integration tests on 'libs' folder packages
- Adds tags to nx projects in libs folder
Because:
* Fluent warning messages are slowing down tests.
This commit:
* Updates to the latest @fluent/react version
* Adds a non-console.warn reportError to testing ReactLocalization
instantiations.
Closes #FXA-7958
Because:
* Resubscription tests were failing/flaking
This commit:
* Increase the playwright functional test resource class from large to xlarge.
Closes #
Because:
- We want to enable password reset using our react app.
This commit:
- Ports over oauth reset password for react
- Updates Playwright tests accordingly
- Ports over playwright tests covering typical reset password flows
- Adds playwright test for PKCE reset password case
- Adds playwright test for TOTP reset password case
- Adds playwright test for account recovery code reset password case
- Adds playwright test for account recovery code & TOTP reset password case
- Enables oauth redirect logic, and removed short circuit operation in router.js -> showReactApp that would prevent oauth routes from rendering.
- Applied oauth redirect logic to:
- CompleteResetPassword page
- AccountRecoveryResetPassword
- Fixes issues with displaying service name in:
- ResetPasswordWithRecoveryKeyVerified
- ResetPasswordVerified,
- Fixes issues with rendering story book state
- Fixed issues found in hooks:
- Switched CreateReliers and CreateIntegration to useReliers and useIntegration. These accessed context so it turns out they really should be hooks.
- Made these hooks return singletons, which fixed a bunch of ‘ghost’ rerenders.
- Fixed an intermittent race condition in url-query-data.ts and added an option to ‘synchronize’ a data store.
- Updated logic in RelierFactory.initOuathReliers to ensure all the relying party information needed for password reset could be resolved.
- Fixed call to account.resetPassword on ResetPassword page, so proper options were sent to auth so state would be reflected in email link.
- Added support for handling resume tokens. Resume tokens on base64 encoded in the resume field in the query string. The logic for parsing these tokens wasn’t present yet.
- Updated the integration factory to pass in a relier authClient. These were needed to handle the integration logic.
- Ported scoped keys logic.
- Clean up in tests:
- Moved commonly used function, getReactFeatureFlagUrl to a util file.
- Removes incorrect usages of act blocks in favor of 'findBy' calls
- Wraps events in 'act' block that require it thereby fixing 'act' warnings
- Mocks console.warn to silence data provider output
- Test fxa-settings:test-integration output is now 100% percent clean, with no more warnings!
Because:
* We need to show the customer what is owed and when (i.e. proration) on checkout.
This commit:
* Updates PlanUpgradeDetails component and invoice preview to include proration amount.
* Adds a helper function to formats for only plan intervals.
* Shows updated content when useStripeImmediatelyInvoice flag is set to true.
* Updates tests and stories when aforementioned flag is set to true, where applicable.
Closes FXA-6878
Because:
- We want to lock down our gql queries as part of good security practices.
This Commit:
- Creates task that extracts existing gql queries from our code
- Applies middleware that checks a allowlist of extracted queries.
- Creates a 403 if the query is not in the allowlist
- Makes all gql parsable by extraction utility. The extraction utility doesn't support string placeholders. e.g. gql` Account { ${ACCOUNT_FIELDS} }`
- Moves all the gql in the admin server into .ts files. Again for consistency and extraction utility support.
- Cleans up some config references at startup
- Adds nx config for extraction & copy tasks
Because:
* We need to update the playwright tests to support the new account recovery key flow
This commit:
* Update recoveryKey page model
* Update misc, password and recoveryKey functional tests with feature flagging
Closes #FXA-7250
Because:
- We want to try running smoke tests against a new environment
This Commit:
- Adds pipeline parameters for configuring standard domains
- Transfers pipeline parameters to a set of standard envs
- Updates playwright tests to use these envs
- Updates functional content server tests to use these envs
Because:
* We want to introduce nx to the repository
This commit:
* Adds nx with working builds
Closes: FXA-7341
Co-authored-by: dschom <dschomburg@mozilla.com>