-
Notifications
You must be signed in to change notification settings - Fork 298
[spector] Add discriminated union test cases #7602
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Co-authored-by: msyyc <70930885+msyyc@users.noreply.github.com>
Co-authored-by: msyyc <70930885+msyyc@users.noreply.github.com>
Co-authored-by: msyyc <70930885+msyyc@users.noreply.github.com>
@copilot Apply comments #7602 (comment) and #7602 (comment) for all scenarios. |
… to all GET endpoints Co-authored-by: msyyc <70930885+msyyc@users.noreply.github.com>
Applied both comments to all scenarios:
Updated mockapi implementations to handle the optional parameters with appropriate response logic (when parameter is null/"cat" returns cat response, when "dog" returns dog response). All 56 scenarios pass validation. Implemented in commit ab3ee92. |
Co-authored-by: msyyc <70930885+msyyc@users.noreply.github.com>
… union scenarios Co-authored-by: msyyc <70930885+msyyc@users.noreply.github.com>
Co-authored-by: msyyc <70930885+msyyc@users.noreply.github.com>
Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details. Warning Firewall rules blocked me from connecting to one or more addressesI tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
Co-authored-by: msyyc <70930885+msyyc@users.noreply.github.com>
Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details. Warning Firewall rules blocked me from connecting to one or more addressesI tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
Co-authored-by: iscai-msft <43154838+iscai-msft@users.noreply.github.com>
@copilot Add changelog for http-client-js just like you do for http-specs. |
Co-authored-by: msyyc <70930885+msyyc@users.noreply.github.com>
Hi @timotheeguerin, appreciate if you could help approve the PR for merge. |
This PR adds comprehensive spector test cases for discriminated unions based on the TypeSpec standard library documentation.
Scenarios Implemented
Added test cases covering the three main discriminated union patterns:
Default serialization (
/envelope
) - Uses defaultkind
andvalue
envelope structure:Custom property names (
/custom-names
) - Uses custom discriminator and envelope properties:Inline discriminator (
/inline
) - Usesenvelope: "none"
to inject discriminator directly:Each scenario includes both GET and PUT operations with complete mockapi implementations.
Files Added
packages/http-specs/specs/type/union/discriminated/main.tsp
- TypeSpec definitions with 6 scenariospackages/http-specs/specs/type/union/discriminated/mockapi.ts
- Mock API implementationsspec-summary.md
with auto-generated documentationValidation
✅ All 56 scenarios (including new ones) pass validation
✅ TypeScript compilation successful
✅ Mock API validation passes
✅ No linting errors
✅ Documentation regenerated
The implementation follows existing spector patterns and provides comprehensive test coverage for discriminated unions as specified in the TypeSpec documentation.
Fixes #7601.
Warning
Firewall rules blocked me from connecting to one or more addresses
I tried to connect to the following addresses, but was blocked by firewall rules:
typespec.io
curl -s REDACTED
(dns block)If you need me to access, download, or install something from one of these locations, you can either:
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.