@@ -85,7 +85,7 @@ function accept(stack: Record<string, unknown>) {
8585 return result . success ? result . data . apis : undefined ;
8686}
8787
88- describe ( '[#5111] the flip — a well-formed `apis:` publishes' , ( ) => {
88+ describe ( 'the flip — a well-formed `apis:` publishes' , ( ) => {
8989 it ( 'accepts an object_operation endpoint under the stack\'s own namespace' , ( ) => {
9090 const apis = accept ( { manifest, apis : [ validObjectEndpoint ] } ) ;
9191 expect ( apis ) . toHaveLength ( 1 ) ;
@@ -149,7 +149,7 @@ describe('[#5111] the flip — a well-formed `apis:` publishes', () => {
149149 } ) ;
150150 } ) ;
151151
152- it ( 'still accepts an EMPTY and an ABSENT `apis:` — the #4936 regression pin ' , ( ) => {
152+ it ( 'still accepts an EMPTY and an ABSENT `apis:` — never refused, even while a non-empty one was ' , ( ) => {
153153 expect ( ObjectStackDefinitionSchema . safeParse ( { manifest, apis : [ ] } ) . success ) . toBe ( true ) ;
154154 expect ( ObjectStackDefinitionSchema . safeParse ( { manifest } ) . success ) . toBe ( true ) ;
155155 expect ( ( ) => defineStack ( { manifest, apis : [ ] } ) ) . not . toThrow ( ) ;
@@ -162,7 +162,7 @@ describe('[#5111] the flip — a well-formed `apis:` publishes', () => {
162162 } ) ;
163163} ) ;
164164
165- describe ( '[#5111] gate (c) — namespace carve-out (ADR-0121 D1/D2)' , ( ) => {
165+ describe ( 'gate (c) — namespace carve-out (ADR-0121 D1/D2)' , ( ) => {
166166 it ( 'rejects a path outside the `apps/<namespace>/` mount, naming the endpoint and the shape' , ( ) => {
167167 const message = reject ( {
168168 manifest,
@@ -214,7 +214,7 @@ describe('[#5111] gate (c) — namespace carve-out (ADR-0121 D1/D2)', () => {
214214 } ) ;
215215} ) ;
216216
217- describe ( '[#5310] the `path` vocabulary text is itself publishable' , ( ) => {
217+ describe ( 'the `path` vocabulary text is itself publishable' , ( ) => {
218218 /**
219219 * `ApiEndpointSchema.path`'s `.describe()` is not a code comment. Since `api`
220220 * became a registered metadata kind (#5271) it is the field help the
@@ -273,7 +273,7 @@ describe('[#5310] the `path` vocabulary text is itself publishable', () => {
273273 } ) ;
274274} ) ;
275275
276- describe ( '[#5111] gate (a) — the supported subset (mirrors `planEndpointTarget`)' , ( ) => {
276+ describe ( 'gate (a) — the supported subset (mirrors `planEndpointTarget`)' , ( ) => {
277277 it ( "rejects `type: 'script'` with the flow prescription" , ( ) => {
278278 const message = reject ( {
279279 manifest,
@@ -324,7 +324,7 @@ describe('[#5111] gate (a) — the supported subset (mirrors `planEndpointTarget
324324 } ) ;
325325} ) ;
326326
327- describe ( '[#5111] gate (b) — mapping declarations (mirrors `mappingDeclarationRejection`)' , ( ) => {
327+ describe ( 'gate (b) — mapping declarations (mirrors `mappingDeclarationRejection`)' , ( ) => {
328328 const bodyEndpoint = {
329329 ...validObjectEndpoint ,
330330 name : 'showcase_task_create' ,
@@ -399,7 +399,7 @@ describe('[#5111] gate (b) — mapping declarations (mirrors `mappingDeclaration
399399 } ) ;
400400} ) ;
401401
402- describe ( '[#5111] gate (e) — policy keys (ADR-0121 D6 + the E4 refusals)' , ( ) => {
402+ describe ( 'gate (e) — policy keys (ADR-0121 D6 + the E4 refusals)' , ( ) => {
403403 it ( 'rejects `authRequired: false` with NO rateLimit' , ( ) => {
404404 const message = reject ( { manifest, apis : [ { ...validFlowEndpoint , authRequired : false } ] } ) ;
405405 expect ( message ) . toMatch ( / A D R - 0 1 2 1 D 6 | a r m e d r a t e l i m i t / i) ;
@@ -464,7 +464,7 @@ describe('[#5111] gate (e) — policy keys (ADR-0121 D6 + the E4 refusals)', ()
464464 } ) ;
465465} ) ;
466466
467- describe ( '[#5111] gate (d) — one claim per METHOD + path inside a stack' , ( ) => {
467+ describe ( 'gate (d) — one claim per METHOD + path inside a stack' , ( ) => {
468468 it ( 'rejects two endpoints claiming the same method and path, naming BOTH' , ( ) => {
469469 const message = reject ( {
470470 manifest,
@@ -508,7 +508,7 @@ describe('[#5111] gate (d) — one claim per METHOD + path inside a stack', () =
508508 } ) ;
509509} ) ;
510510
511- describe ( '[#5111] every rejection is actionable, and reaches every publish seam' , ( ) => {
511+ describe ( 'every rejection is actionable, and reaches every publish seam' , ( ) => {
512512 it ( 'reports one issue per offending endpoint — three bad endpoints, three rejections' , ( ) => {
513513 const result = ObjectStackDefinitionSchema . safeParse ( {
514514 manifest,
@@ -538,7 +538,7 @@ describe('[#5111] every rejection is actionable, and reaches every publish seam'
538538 } ) ;
539539} ) ;
540540
541- describe ( '[#5111] the `ApiEndpoint` vocabulary itself is untouched' , ( ) => {
541+ describe ( 'the `ApiEndpoint` vocabulary itself is untouched' , ( ) => {
542542 // Anti-vacuity for the whole file: the flip is validation logic on the
543543 // EXISTING keys. If a key had been added, removed or renamed, every
544544 // assertion above could still pass while the frozen-vocabulary constraint
@@ -565,7 +565,7 @@ describe('[#5111] the `ApiEndpoint` vocabulary itself is untouched', () => {
565565 expect ( parsed . authRequired ) . toBe ( true ) ;
566566 } ) ;
567567
568- it ( 'keeps endpoint-level `rateLimit` in the vocabulary (#4910-Q2 routed it here )' , ( ) => {
568+ it ( 'keeps endpoint-level `rateLimit` in the vocabulary (ruled: left to the endpoint executor, not the server-level seam )' , ( ) => {
569569 const parsed = ApiEndpointSchema . parse ( {
570570 name : 'x_endpoint' ,
571571 path : '/api/v1/apps/showcase/x' ,
@@ -594,7 +594,7 @@ describe('identityFreeEndpointGateFailure — the same judge, minus stack identi
594594 expect ( identityFreeEndpointGateFailure ( ApiEndpointSchema . parse ( validObjectEndpoint ) ) ) . toBeUndefined ( ) ;
595595 } ) ;
596596
597- it ( 'still refuses D6 — the gate with no runtime counterpart, and the reason #5189 exists ' , ( ) => {
597+ it ( 'still refuses D6 — the gate with no runtime counterpart, so the per-item publish path runs it too ' , ( ) => {
598598 const failure = identityFreeEndpointGateFailure (
599599 ApiEndpointSchema . parse ( { ...validObjectEndpoint , cacheTtlSeconds : undefined , authRequired : false } ) ,
600600 ) ;
0 commit comments