Skip to content

Optimize HttpStub response generation and example load code path#2308

Merged
joelrosario merged 11 commits intomainfrom
optimize-stub-response
Mar 2, 2026
Merged

Optimize HttpStub response generation and example load code path#2308
joelrosario merged 11 commits intomainfrom
optimize-stub-response

Conversation

@StarKhan6368
Copy link
Copy Markdown
Contributor

@StarKhan6368 StarKhan6368 commented Feb 27, 2026

What: Optimize HttpStub response generation and example load code path

Why: The previous flow evaluated/mapped more scenarios than necessary before determining the result

How:

  • Pre-filter scenarios before full matching, including method/path-structure based narrowing
  • Apply expected-status and Accept-header ordering on scenarios directly, before computing full match results
  • Simplify response selection/collection flow in fakeHttpResponse and matchingStub and related helpers

Checklist:

  • Unit Tests
  • Build passing locally
  • Sonar Quality Gate
  • Security scans don't report any vulnerabilities
  • Documentation added/updated (share link)
  • Sample Project added/updated (share link)
  • Demo video (share link)
  • Article on Website (share link)
  • Roadmpap updated (share link)
  • Conference Talk (share link)

- Convert to using sequence when possible
- Operate on a subset of scenarios matching method and path
- applyStubFallbackRequestFilters on scenarios instead of result
@github-actions
Copy link
Copy Markdown

github-actions bot commented Feb 27, 2026

Summary

Line coverage Branch coverage

Assembly Line coverage Branch coverage
application 58.8% 52.6%
application/backwardCompatibility 77.2% 62.1%
application/mcp 84.3% 89.2%
application/validate 1.3% 0%
io/specmatic/conversions 93.1% 80.4%
io/specmatic/conversions/lenient 93.9% 79.4%
io/specmatic/core 80.3% 62.6%
io/specmatic/core/azure 0% 0%
io/specmatic/core/config 59.2% 35.8%
io/specmatic/core/config/v1 98% 25%
io/specmatic/core/config/v2 91.9% 77.5%
io/specmatic/core/config/v3 58.1% 32.2%
io/specmatic/core/config/v3/components 71.4% 40%
io/specmatic/core/config/v3/components/runOptions 73% 44.7%
io/specmatic/core/config/v3/components/services 85.5% 59.9%
io/specmatic/core/config/v3/components/settings 98.3% 63.8%
io/specmatic/core/config/v3/components/sources 82.8% 60.6%
io/specmatic/core/config/v3/specmatic 65.3% 25%
io/specmatic/core/discriminator 53.2% 43.1%
io/specmatic/core/examples/module 43.3% 24.5%
io/specmatic/core/examples/server 70.4% 35.7%
io/specmatic/core/filters 83.6% 70.1%
io/specmatic/core/fuzzy 95.8% 92.7%
io/specmatic/core/git 8.1% 12.8%
io/specmatic/core/jsonoperator 58.4% 68.6%
io/specmatic/core/jsonoperator/value 85.7% 75.9%
io/specmatic/core/lifecycle 0% ****
io/specmatic/core/log 74.5% 62%
io/specmatic/core/matchers 76.7% 62.6%
io/specmatic/core/overlay 85.7% 58.3%
io/specmatic/core/pattern 87.1% 76.1%
io/specmatic/core/pattern/config 100% ****
io/specmatic/core/pattern/regex 94% 84.1%
io/specmatic/core/report 97.7% 92.8%
io/specmatic/core/route/modules 95.8% 90%
io/specmatic/core/utilities 64.8% 56.6%
io/specmatic/core/value 81.4% 71.5%
io/specmatic/core/wsdl/parser 80.9% 41.4%
io/specmatic/core/wsdl/parser/message 88.6% 67.8%
io/specmatic/core/wsdl/parser/operation 100% 100%
io/specmatic/core/wsdl/payload 71.7% 33.3%
io/specmatic/junit5/support 0% ****
io/specmatic/loader 80.4% 50.8%
io/specmatic/mcp/constants 0% ****
io/specmatic/mcp/report 0% 0%
io/specmatic/mcp/test 0% 0%
io/specmatic/mcp/test/client 0% 0%
io/specmatic/mcp/test/client/model 0% 0%
io/specmatic/mock 60.9% 57.3%
io/specmatic/proxy 66.5% 48.6%
io/specmatic/specmatic/core 100% ****
io/specmatic/specmatic/executable 100% ****
io/specmatic/specmatic/mcp 0% ****
io/specmatic/stub 78.8% 68.9%
io/specmatic/stub/listener 96.8% 100%
io/specmatic/stub/report 98.1% 75%
io/specmatic/test 73.1% 62.8%
io/specmatic/test/asserts 92.1% 86.6%
io/specmatic/test/fixtures **** ****
io/specmatic/test/handlers 90.3% 63.5%
io/specmatic/test/listeners 86.9% 53.9%
io/specmatic/test/matchers **** ****
io/specmatic/test/reports 69% 36.4%
io/specmatic/test/reports/coverage 96.9% 53.9%
io/specmatic/test/reports/coverage/console 85.8% 81%
io/specmatic/test/reports/coverage/html 0% 0%
io/specmatic/test/reports/renderers 12.4% 14%
io/specmatic/test/utils 92.1% 82%

@StarKhan6368 StarKhan6368 changed the title Optimize HttpStub.fakeHttpResponse code path Optimize HttpStub response generation and example load code path Feb 27, 2026
- Use EarlyResult.kt for clearer intent
- Remove selectMatchingStubBasedOnAcceptPriority as it servers no purpose at the moment
@StarKhan6368 StarKhan6368 force-pushed the optimize-stub-response branch from 6d22d03 to 19c0578 Compare February 27, 2026 13:41
@joelrosario joelrosario self-requested a review March 2, 2026 07:36
@joelrosario joelrosario merged commit 0448fe8 into main Mar 2, 2026
3 checks passed
@joelrosario joelrosario deleted the optimize-stub-response branch March 2, 2026 07:36
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