Skip to content

Conversation

@StarKhan6368
Copy link
Contributor

What: Modify the Dictionary implementation to be lenient by default

How:
The dictionary attempts to select the best value from the provided options without causing a complete failure in the generation process, It can be configured by activating strict mode, which will restore the original behavior of providing immediate feedback

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)

- Instead of calling out invalid-values and halting generation
- Dictionary will now try to find the best random match and use it
- If none found random data generation logic will be used
- Add tests for the same and lenient mode
- Make the value selection lenient using keyChecks
@github-actions
Copy link

github-actions bot commented Dec 4, 2025

Summary

Line coverage Branch coverage

Assembly Line coverage Branch coverage
application 55.9% 42.7%
application/backwardCompatibility 77.2% 54.5%
application/mcp 5.2% 0%
io/specmatic/conversions 91.2% 79.4%
io/specmatic/core 77% 59.5%
io/specmatic/core/azure 0% 0%
io/specmatic/core/config 95.4% 84.2%
io/specmatic/core/config/v1 97.8% 25%
io/specmatic/core/config/v2 97.7% 74.1%
io/specmatic/core/config/v3 97.6% 83.6%
io/specmatic/core/discriminator 53.2% 43.1%
io/specmatic/core/examples/module 21.6% 14.4%
io/specmatic/core/examples/server 11.3% 0%
io/specmatic/core/filters 81.2% 74.4%
io/specmatic/core/git 5% 3.4%
io/specmatic/core/jsonoperator 76.4% 70.8%
io/specmatic/core/jsonoperator/value 85.1% 75.5%
io/specmatic/core/lifecycle 0% ****
io/specmatic/core/log 80.7% 61.2%
io/specmatic/core/matchers 77.5% 54.5%
io/specmatic/core/overlay 85.7% 58.3%
io/specmatic/core/pattern 86.5% 74.9%
io/specmatic/core/pattern/config 100% ****
io/specmatic/core/pattern/regex 94% 86.5%
io/specmatic/core/report 0% 0%
io/specmatic/core/route/modules 92.8% 75%
io/specmatic/core/utilities 61% 54.6%
io/specmatic/core/value 85.5% 73.2%
io/specmatic/core/wsdl/parser 80.9% 41.4%
io/specmatic/core/wsdl/parser/message 89% 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/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 55.3% 56%
io/specmatic/proxy 64.6% 47.1%
io/specmatic/specmatic/core 0% ****
io/specmatic/specmatic/executable 100% ****
io/specmatic/specmatic/mcp 0% ****
io/specmatic/stub 76.5% 70.3%
io/specmatic/stub/listener 100% 50%
io/specmatic/stub/report 98% 77.2%
io/specmatic/test 66.9% 54%
io/specmatic/test/asserts 97.1% 85.8%
io/specmatic/test/handlers 90.9% 63.5%
io/specmatic/test/listeners 47% 23.6%
io/specmatic/test/reports 65.1% 28.9%
io/specmatic/test/reports/coverage 97.2% 51.2%
io/specmatic/test/reports/coverage/console 85.5% 80%
io/specmatic/test/reports/coverage/html 0% 0%
io/specmatic/test/reports/renderers 11.8% 12.1%
io/specmatic/test/utils 92.1% 82%

@joelrosario joelrosario merged commit 61f3164 into main Dec 4, 2025
3 checks passed
@joelrosario joelrosario deleted the lenient-dictionary branch December 4, 2025 13:27
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