Skip to content

feat: add cross-language Spector tests for dollar-sign query params and discriminator without subtypes#10841

Open
iscai-msft wants to merge 10 commits into
microsoft:mainfrom
iscai-msft:feat/cross-language-spector-tests
Open

feat: add cross-language Spector tests for dollar-sign query params and discriminator without subtypes#10841
iscai-msft wants to merge 10 commits into
microsoft:mainfrom
iscai-msft:feat/cross-language-spector-tests

Conversation

@iscai-msft
Copy link
Copy Markdown
Member

Add two new cross-language Spector test scenarios identified from Go and TypeScript emitter bug fixes:

1. Dollar-sign prefixed query parameters (parameters/query/DollarSign)

Tests that emitters correctly handle $-prefixed query parameter names on the wire (e.g. $filter, $top, $skip, $orderby). Common in OData-style APIs.

2. Discriminated type without subtypes (type/model/inheritance/single-discriminator)

Tests a @discriminator-decorated model with no extending subtypes. Emitters should still generate the polymorphic type infrastructure.

Both scenarios include main.tsp definitions, mockapi.ts implementations, and updated spec-summary.md.

@iscai-msft iscai-msft added the lib:http-specs For issues/prs related to the @typespec/http-specs package label May 29, 2026
@pkg-pr-new
Copy link
Copy Markdown

pkg-pr-new Bot commented May 29, 2026

Open in StackBlitz

npm i https://pkg.pr.new/@typespec/http-specs@10841

commit: 42946e0

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 29, 2026

All changed packages have been documented.

  • @typespec/http-specs
Show changes

@typespec/http-specs - feature ✏️

add test for discriminator model without subtypes and query params with $ prefixes

@azure-sdk-automation
Copy link
Copy Markdown

azure-sdk-automation Bot commented May 29, 2026

You can try these changes here

🛝 Playground 🌐 Website 🛝 VSCode Extension

iscai-msft and others added 4 commits June 1, 2026 11:15
Add DollarSign interface to parameters/query with scenarios for
$filter, $top/$skip, and $orderby query parameters.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add Fish model with @Discriminator but no extending models to
single-discriminator tests. Covers get and put scenarios.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@iscai-msft iscai-msft force-pushed the feat/cross-language-spector-tests branch from 4662678 to 75dc1ee Compare June 1, 2026 15:16
Add parameters/body-root scenario for @bodyRoot nested inside a wrapper
model, testing that emitters resolve the accessor path through the wrapper
(e.g. body.param) rather than referencing the property name directly.

Identified from: Azure/autorest.typescript#3961

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@iscai-msft iscai-msft force-pushed the feat/cross-language-spector-tests branch from 75dc1ee to c630cef Compare June 1, 2026 15:28
iscai-msft added 2 commits June 1, 2026 12:11
Comment thread packages/http-specs/specs/parameters/body-root/main.tsp
Comment thread packages/http-specs/specs/parameters/body-root/main.tsp
Comment thread packages/http-specs/specs/parameters/query/main.tsp Outdated
@iscai-msft iscai-msft enabled auto-merge June 2, 2026 20:03
Comment thread packages/http-specs/specs/parameters/query/main.tsp
@iscai-msft iscai-msft requested a review from timotheeguerin June 2, 2026 20:26
@iscai-msft
Copy link
Copy Markdown
Member Author

@timotheeguerin the failures in e2e are from the unbranded js emitter. they already have this issue, and they don't have time to fix the unbranded one right now. Is there a way to skip the e2e tests in this case? thanks! cc @JialinHuang803

@timotheeguerin
Copy link
Copy Markdown
Member

i think packages/http-client-js/.testignore this file

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lib:http-specs For issues/prs related to the @typespec/http-specs package

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants