Skip to content

Commit 66d239d

Browse files
dmealingclaude
andcommitted
fix(csharp-conformance): read expect-error via hyphenated convention (corpus parity)
A parallel change pinned the C# query-DSL key to camelCase (`[YamlMember(Alias = "expectError")]`), but the corpus authors it hyphenated (`expect-error:`, matching `seed-data:`) and TS reads `expect-error` — so C# read null and the tph-no-cross-subtype-update expectations were silently dropped. Drop the stale alias; HyphenatedNamingConvention maps ExpectError → expect-error automatically, consistent with every other field + the TS parser. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 72067ed commit 66d239d

1 file changed

Lines changed: 3 additions & 4 deletions

File tree

server/csharp/MetaObjects.IntegrationTests/Runner/ScenarioLoader.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -131,10 +131,9 @@ private sealed class QuerySpecYaml
131131
// Same rationale as Insert — UPDATE re-encode of every subtype is the point of
132132
// update-delete-all-types.yaml, so it must use the same coercion as roundtrip.
133133
public YamlNode? Data { get; set; }
134-
// The corpus authors this key in camelCase (`expectError:`) while most other
135-
// keys are hyphenated (`seed-data:`); the hyphenated naming convention would
136-
// map it to `expect-error`, so pin the literal camelCase alias the fixtures use.
137-
[YamlMember(Alias = "expectError", ApplyNamingConventions = false)]
134+
// The corpus authors this key hyphenated (`expect-error:`, matching
135+
// `seed-data:`); the HyphenatedNamingConvention maps ExpectError → expect-error
136+
// automatically, so no explicit alias is needed (TS reads q["expect-error"]).
138137
public bool? ExpectError { get; set; }
139138
// For op: roundtrip — the field-keyed row to WRITE through the EF runtime.
140139
// Captured as a raw YamlNode (scalar style preserved) so the writer can honor

0 commit comments

Comments
 (0)