Skip to content

tests: add coverage for provider-specific fallback notices (#855)#923

Merged
masteradhoc merged 3 commits into
WordPress:masterfrom
dknauss:pr-858-tests
Jul 16, 2026
Merged

tests: add coverage for provider-specific fallback notices (#855)#923
masteradhoc merged 3 commits into
WordPress:masterfrom
dknauss:pr-858-tests

Conversation

@dknauss

@dknauss dknauss commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Follow-up tests for PR #858, which landed without test coverage.

What

Two tests for the conditional notice logic introduced in #858:

  • test_user_two_factor_options_mentions_recovery_codes_when_backup_codes_are_available — when Two_Factor_Backup_Codes is registered, the profile UI should name "Recovery Codes" specifically
  • test_user_two_factor_options_uses_generic_wording_when_backup_codes_are_filtered_out — when Two_Factor_Backup_Codes is removed via the two_factor_providers filter, the UI should use the generic fallback wording instead

Also adds two private helpers used by these tests (and available for future notice-related tests):

  • reset_profile_errors() — clears the static $profile_errors array between tests via reflection
  • render_user_two_factor_options() — captures user_two_factor_options() output to a string

Why

The fix in #858 is a conditional: one branch names "Recovery Codes" explicitly, the other uses generic wording. Without tests, either branch could silently regress. These tests pin both sides of the condition.

Open WordPress Playground Preview

@github-actions

github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: dknauss <dpknauss@git.wordpress.org>
Co-authored-by: masteradhoc <masteradhoc@git.wordpress.org>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@masteradhoc

Copy link
Copy Markdown
Collaborator

@nimesh-xecurify would you be open to review this PR as well?

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds PHPUnit coverage for the provider-specific fallback notice logic in Two_Factor_Core::user_two_factor_options(), ensuring the profile UI wording correctly switches between “Recovery Codes” vs generic messaging depending on whether Two_Factor_Backup_Codes is present in the filtered provider list.

Changes:

  • Added two tests that assert the correct notice wording when Backup Codes are available vs filtered out.
  • Introduced helper methods to (a) clear Two_Factor_Core’s static profile_errors between tests and (b) capture user_two_factor_options() markup as a string.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread tests/class-two-factor-core.php
@masteradhoc masteradhoc self-assigned this Jul 13, 2026
@masteradhoc masteradhoc added this to the 0.17.0 milestone Jul 13, 2026
masteradhoc and others added 2 commits July 13, 2026 22:25
Wrap the render in try/finally so a throw in user_two_factor_options()
can't leak this helper's output buffer or the static profile-errors state
into later tests. The finally unwinds only buffers opened here (guarded by
the captured ob level) and re-clears profile errors.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.

@masteradhoc masteradhoc left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Thanks for your contribution!

@masteradhoc
masteradhoc merged commit e69b682 into WordPress:master Jul 16, 2026
31 checks passed
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.

4 participants