Skip to content

Codex/fix playback issues with parameterized tests#71

Merged
sloppylopez merged 1 commit intocodex/fix-404-in-fullflowflexibleit-testfrom
codex/fix-playback-issues-with-parameterized-tests
Mar 5, 2026
Merged

Codex/fix playback issues with parameterized tests#71
sloppylopez merged 1 commit intocodex/fix-404-in-fullflowflexibleit-testfrom
codex/fix-playback-issues-with-parameterized-tests

Conversation

@sloppylopez
Copy link
Owner

Description

Brief description of the changes in this PR.

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Code refactoring
  • Performance improvement
  • Test improvements

Related Issue

Fixes #(issue number)

Changes Made

  • List key changes made in this PR
  • Be specific about what was added/modified/removed

Testing

  • All existing tests pass
  • New tests added for new functionality
  • Manual testing completed
  • Test coverage remains above 80%

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • I have updated CHANGELOG.md with my changes

Screenshots (if applicable)

Add screenshots to help explain your changes.

Additional Notes

Any additional information that reviewers should know.

@sloppylopez sloppylopez changed the base branch from main to codex/fix-404-in-fullflowflexibleit-test March 5, 2026 15:22
@sloppylopez sloppylopez requested a review from Copilot March 5, 2026 15:22
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR updates StableMock’s test fixtures and annotation surface to address playback behavior in parameterized/integration tests, and introduces a new dontIgnore override to keep specific fields from being ignored.

Changes:

  • Add dontIgnore() to @U for overriding both auto-detected ignore patterns and explicit ignore() patterns.
  • Add a JUnit test intended to validate dontIgnore semantics (currently implemented as a local list-manipulation test).
  • Re-record/refresh many example WireMock mappings and analysis artifacts used by the Spring Boot example tests (new UUIDs, updated timestamps/headers, added/removed body files).

Reviewed changes

Copilot reviewed 189 out of 243 changed files in this pull request and generated 2 comments.

File Description
src/main/java/com/stablemock/U.java Adds dontIgnore() annotation attribute and Javadoc.
src/test/java/com/stablemock/core/analysis/AnalysisResultStorageDontIgnoreTest.java Adds a test intended to cover dontIgnore behavior (but currently doesn’t exercise production code).
examples/spring-boot-example/src/test/resources/** Updates recorded mappings / bodies / detected-fields / analysis request logs for playback.

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

Comment on lines +12 to +16
class AnalysisResultStorageDontIgnoreTest {

@Test
void dontIgnoreEntriesAreRemovedFromEffectiveIgnoreSet() {
List<String> autoDetected = new ArrayList<>(Arrays.asList(
Copy link

Copilot AI Mar 5, 2026

Choose a reason for hiding this comment

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

This test currently re-implements the ignore/dontIgnore merge logic with local lists instead of exercising the production code path that computes and applies effective ignore patterns. As written, it can pass even if the real playback logic is broken or if pattern normalization differs. Consider asserting behavior via the real integration point (e.g., the component that applies annotation ignore/dontIgnore to auto-detected patterns) and use the same pattern prefix conventions the runtime expects.

Copilot uses AI. Check for mistakes.
Comment on lines +42 to +48
/**
* Explicit protect list – these paths must not be ignored.
* Entries here override both auto-detected ignore patterns and {@link #ignore()}.
* Typical usage is to list identifying fields that should remain part of matching
* even if they look dynamic to the detector.
*/
String[] dontIgnore() default {};
Copy link

Copilot AI Mar 5, 2026

Choose a reason for hiding this comment

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

The new dontIgnore() option documents the intent, but it doesn’t document the expected pattern formats (e.g., json:, gql:/graphql:, xml://) the same way ignore() does. Without that, users can easily provide values that will never match and assume the override is broken. Please extend this Javadoc to explicitly state that dontIgnore entries must use the same prefixes/format as ignore patterns and auto-detected ignore patterns.

Copilot uses AI. Check for mistakes.
@sloppylopez
Copy link
Owner Author

@copilot open a new pull request to apply changes based on the comments in this thread

Copy link

Copilot AI commented Mar 5, 2026

@sloppylopez I've opened a new pull request, #72, to work on those changes. Once the pull request is ready, I'll request review from you.

@sloppylopez sloppylopez merged commit fb71abf into codex/fix-404-in-fullflowflexibleit-test Mar 5, 2026
13 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.

3 participants