Skip to content

Fix flakey local test failures for in-person proofing feature specs#7145

Merged
aduth merged 1 commit intomainfrom
aduth-wait-ipp-state-id-step
Oct 14, 2022
Merged

Fix flakey local test failures for in-person proofing feature specs#7145
aduth merged 1 commit intomainfrom
aduth-wait-ipp-state-id-step

Conversation

@aduth
Copy link
Contributor

@aduth aduth commented Oct 14, 2022

🛠 Summary of changes

Allows a longer wait delay for in-person feature specs to avoid flakey test failures when run locally. Clicking "Continue" from the "prepare" step will wait for a client-side logging event before continuing to the "State ID" step, which often cannot complete before the 0.5 second tolerance allowed by default in local development environments.

Related discussion: #7046 (comment)

Source for client-side awaited logging:

await trackEvent('IdV: prepare submitted');
window.location.href = (event.target as HTMLAnchorElement).href;

Example failure:

Failures:

  1) Analytics Regression in person path records all of the events
     Failure/Error:
       expect(page).to have_current_path(
         idv_in_person_step_path(step: :state_id),
       )
     
       expected "/verify/doc_auth/document_capture" to equal "/verify/in_person/state_id"
     # ./spec/support/features/in_person_helper.rb:66:in `complete_state_id_step'
     # ./spec/support/features/in_person_helper.rb:90:in `complete_all_in_person_proofing_steps'
     # ./spec/features/idv/analytics_spec.rb:196:in `block (3 levels) in <top (required)>'
     # ./spec/features/idv/analytics_spec.rb:133:in `block (3 levels) in <top (required)>'
     # ./spec/features/idv/analytics_spec.rb:133:in `block (2 levels) in <top (required)>'
     # ./spec/rails_helper.rb:130:in `block (2 levels) in <top (required)>'

📜 Testing Plan

Running a feature spec which uses this helper should pass.

For example: rspec spec/features/idv/analytics_spec.rb

**Why**: Clicking "Continue" from the "prepare" step will wait for a client-side logging event before continuing to the "State ID" step, which often cannot complete before the 0.5 second tolerance allowed by default in local development environments.

changelog: Internal, Automated Testing, Improve reliability of feature specs
@aduth aduth requested a review from NavaTim October 14, 2022 13:35
@aduth aduth changed the title Fix flakey test failures for in-person proofing feature specs Fix flakey local test failures for in-person proofing feature specs Oct 14, 2022
@aduth aduth merged commit 2263016 into main Oct 14, 2022
@aduth aduth deleted the aduth-wait-ipp-state-id-step branch October 14, 2022 14:02
@mdiarra3 mdiarra3 mentioned this pull request Oct 17, 2022
mdiarra3 added a commit that referenced this pull request Oct 17, 2022
* LG-7446 Create "Cancel" Links and Supporting Cancellation Code for Identity Proofing Process (1 of n) (#7124)

* Create concern to render 404 if

The IdentityConfig.store.inherited_proofing_enabled returns false in
preparation for use in the Inherited Proofing (IP) cancellations controller
that needs to be created. Eventually, this code may get thrown away
once IP goes live; however, this makes for less lines of code that
need to be removed once/if it does.

changelog: Improvements, Upcoming Features, LG-7446 Create Inherited Proofing Cancellation Links and Process

* Add skeleton InheritedProofingCancellationsController

Specs to be added in subsequent PR when controller actions
are fleshed out.

* Add InheritedProofingCancellationsController views and i18n

* Add routes for InheritedProofingCancellationsController actions

* Satisfy Brakeman violations

Specifically, the "Render path contains parameter value" violation.

This commit whitelists the flow steps expected and raises an error
if params[:step] is not found in the whitelist.

Confidence: Weak
Category: Dynamic Render Path
Check: Render
Message: Render path contains parameter value
Code: render(action => ButtonComponent.new(:action =>
  (lambda do  button_to(idv_inherited_proofing_cancel_path(:step => params[:step]),
  { **tag_options }, &block)  end), :method => :put, :big => true, :wide => true,
  :outline => true).with_content(t("inherited_proofing.cancel.actions.keep_going")), {})
File: app/views/idv/inherited_proofing_cancellations/new.html.erb
Line: 23

Confidence: Weak
Category: Dynamic Render Path
Check: Render
Message: Render path contains parameter value
Code: render(action => SpinnerButtonComponent.new(:action =>
  (lambda do  button_to(idv_inherited_proofing_cancel_path(:step => params[:step],
  :location => "cancel"), { **tag_options }, &block)  end), :method => :delete,
  :big => true, :wide => true, :outline => true,
  :form => ({ :data => ({ :form_steps_wait => "" }) }))
  .with_content(CancellationsPresenter.new(:sp_name =>
  decorated_session.sp_name, :url_options => url_options).exit_action_text), {})
File: app/views/idv/inherited_proofing_cancellations/new.html.erb
Line: 44

* Remove unused analytics events (#7142)

changelog: Internal, Analytics, Remove unused analytics events

* Remove JavaScript optimization from asset pipeline (#7136)

changelog: Internal, Build Tooling, Remove redundant JavaScript optimization step

* Remove unused support for proc methods in frontend logger (#7143)

changelog: Internal, Analytics, Remove unused feature support in frontend logger

Last usages removed in #7110

* Ensure all UserMailer emails do not use plaintext emails as parameters (#7106)

* Ensure all UserMailer emails have matching User and EmailAddress parameters and plaintext emails are not used as parameters

changelog: Internal, Email, Ensure all UserMailer emails have matching User and EmailAddress parameters and plaintext emails are not used as parameters

Co-authored-by: Zach Margolis <zachmargolis@users.noreply.github.com>

* fix mailer previews

Co-authored-by: Zach Margolis <zachmargolis@users.noreply.github.com>

* Prepare to drop unused registration_logs columns (LG-6317) (#7131)

- Make registration_logs.submitted_at nullable, stop writing it
- Ignore other columns

changelog: Internal, Logging, Stop writing extra registration_logs timestamps

* LG-7251 Update SAML SP request flow to POST internally instead of GET (#6894)

* Update SAML SP request flow to POST internally instead of GET

* Add route for internal SAML auth POST requests

* changelog: Improvements, Service Provider Authentication, Update SAML Authentication Flow

* Add feature flag for SAML internal POST update, tests for the flag

* Allow longer wait delay for in-person feature specs (#7145)

**Why**: Clicking "Continue" from the "prepare" step will wait for a client-side logging event before continuing to the "State ID" step, which often cannot complete before the 0.5 second tolerance allowed by default in local development environments.

changelog: Internal, Automated Testing, Improve reliability of feature specs

* LG-7702: record the issuer of the SP requesting idv in the profile. (#7125)

* LG-7702: record the issuer of the SP requesting idv in the profile.

changelog: Internal, Identity Verification, Track the agency requesting identity verification.

* record the initiating sp as an association
* use the issuer as the foreign key

* changelog: Improvements, In-Person Proofing, updates translations in french and spanish (#7139)

* LG-7446 Create "Cancel" Links and Supporting Cancellation Code for Identity Proofing Process (2 of n) (#7144)

* Segregate Inherited Proofing routes

changelog: Improvements, Upcoming Features, LG-7446 Create Inherited Proofing Cancellation Links and Process

* Rename concern to avoid whitelist in naming

- Flow step whitelist should be compared as strings
so this was changed as well.
- ...not Symbols, because they will be compared against
params[:step] which will be a String value.
- Remove unnecessary code

* Add InheritedProofingCancellationsController specs

Co-authored-by: Gene M. Angelo, Jr <web.gma@gmail.com>
Co-authored-by: Andrew Duthie <andrew.duthie@gsa.gov>
Co-authored-by: Mitchell Henke <mitchell.henke@gsa.gov>
Co-authored-by: Zach Margolis <zachmargolis@users.noreply.github.com>
Co-authored-by: Julia Allen <51330839+julialeague@users.noreply.github.com>
Co-authored-by: Doug Price <douglas.price@gsa.gov>
Co-authored-by: Matt Gardner <wilburnforce@gmail.com>
This was referenced Oct 20, 2022
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