Skip to content

Commit 5cb0f9c

Browse files
committed
test(rest): re-point every reader of the moved per-item reads
Sub-slice 13b, the re-point commit. Each reader whose reading includes a moved line now reads meta-item-read-routes.ts, with its sum unchanged: - the registrar-list readers (execctx census 62 sites / 137 mentions, draft census 8, query-number census 9, canonical query-AST census 4, docblock floors 59, the ui-view measurements) pin length 15; - the dogfood blind-spot census keeps 70 / 19 / 51 with a per-module control of 4, and the realtime tripwires read 0 over fifteen files; - the runtime parity test finds the item, tree and layers handlers in the module and the layered helper in the class; - check-route-envelope declares the module at 1 / 1 and rest-server.ts goes 8 / 4 to 7 / 3, sums unchanged; - the liveness rows for enableCache, endpoints.item, doc content and the doc and book notes, and the api-backend and platform-core checklist anchors, cite the module; - a new ADR anchor for the module keeps check-adr-anchors' decision-letter reading at 1776, which the move alone dropped to 1760 while green. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QyoWKK9RwUNxBxmevy9Neb
1 parent 8a8a105 commit 5cb0f9c

17 files changed

Lines changed: 166 additions & 47 deletions

‎docs/qa/platform-checklist/areas/api-backend.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2446,7 +2446,7 @@
24462446
"source": [
24472447
"packages/spec/liveness/metadata_endpoints.json (the ADR-0049 ledger this item answers: prefix, enableCache, maskObjectFields and three endpoints.* live, cacheTtl and endpoints.schema dead)",
24482448
"packages/spec/src/api/rest-server.zod.ts#MetadataEndpointsConfigSchema (the declared contract — four endpoints.* switches whose describe() strings enumerate every mount they gate since #15542/#15854, the ADR-0106 D8 docblock and the two retiredKey tombstones)",
2449-
"packages/rest/src/rest-server.ts#registerMetadataEndpointsInner (metaPath, the item endpoint gate and registerPerItemRoute — the per-item switch spelled as a call so the later members of that face carry it), (resolveObjectMasker — the metaType/maskObjectFields fork), (normalizeConfig — isObjectSchemaMaskingEnabled and the OS_ALLOW_UNMASKED_OBJECT_METADATA escape hatch), (getRoutes) + packages/rest/src/meta-collection-routes.ts#registerMetaCollectionRoutes (the types, items and maintenance endpoint gates) + packages/rest/src/discovery-routes.ts#registerDiscoveryEndpoints (discovery.routes.metadata built from prefix)",
2449+
"packages/rest/src/rest-server.ts#registerMetadataEndpointsInner (metaPath and registerPerItemRoute — the per-item switch spelled as a call so the later members of that face carry it), (resolveObjectMasker — the metaType/maskObjectFields fork), (normalizeConfig — isObjectSchemaMaskingEnabled and the OS_ALLOW_UNMASKED_OBJECT_METADATA escape hatch), (getRoutes) + packages/rest/src/meta-collection-routes.ts#registerMetaCollectionRoutes (the types, items and maintenance endpoint gates) + packages/rest/src/meta-item-read-routes.ts#registerMetaItemReadRoutes (the item endpoint gate on the per-item reads) + packages/rest/src/discovery-routes.ts#registerDiscoveryEndpoints (discovery.routes.metadata built from prefix)",
24502450
"ADR-0106 D8 (per-caller field masking of served object schemas) · #14691 (the two retirements) · #7526 (the /meta/types ordering fix the `types` switch takes with it) · ADR-0076 D12 · #15542 / #15854 (the switch-radius ruling that created `maintenance` and gave `item` its own writes) · #15543 (why the measured blast radius of that move is zero: no shipped boot path authors a RestServerConfig)",
24512451
"sibling clause: platform-core.metadata-registry-serving (it drives the served REGISTRY on the default config; this item covers the config that decides what is served and to whom) · platform-core.docs-audience-gate (the audience-gated types that are a cache carve-out here)"
24522452
],

‎docs/qa/platform-checklist/areas/platform-core.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1263,7 +1263,7 @@
12631263
"ADR-0090 (audience vocabulary)",
12641264
"ADR-0049 (fail closed — unresolvable holdings deny)",
12651265
"packages/spec/src/system/book.zod.ts#audienceAllows — audienceAllows / resolveDocAudiences / docAudienceAllows / resolveBookClaimedDocs / deriveImplicitPackageBook / resolveBookTree (UNCATEGORIZED_KEY exclusion)",
1266-
"packages/rest/src/rest-server.ts#metaPath — GET <metaPath>/book/:name/tree (audience gate, per-entry filter, resolveDocLocale, refuseRepeatedQueryParams)",
1266+
"packages/rest/src/meta-item-read-routes.ts#registerMetaItemReadRoutes — GET <metaPath>/book/:name/tree (audience gate, per-entry filter, resolveDocLocale, refuseRepeatedQueryParams)",
12671267
"#2774 (feat(security)!: enforce book audience at the REST read layer)",
12681268
"packages/spec/liveness/book.json + doc.json (the ledgers whose coverage.json waivers this item retires)"
12691269
],

‎packages/qa/dogfood/test/authz-conformance.test.ts‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1635,7 +1635,8 @@ describe('#9084 — the rest-server.ts transport tripwire keys off mechanics', (
16351635
// [#23050 slice 11] Length 11 → 12 (`form-routes.ts`), still 0 over it.
16361636
// [#23050 slice 12] Length 12 → 13 (`crud-routes.ts`), still 0 over it.
16371637
// [#23050 slice 13a] Length 13 → 14 (`meta-collection-routes.ts`), still 0 over it.
1638-
expect(REST_SERVER_REGISTRAR_FILES).toHaveLength(14);
1638+
// [#23050 slice 13b] Length 14 → 15 (`meta-item-read-routes.ts`), still 0 over it.
1639+
expect(REST_SERVER_REGISTRAR_FILES).toHaveLength(15);
16391640
expect(REST_SERVER_REGISTRAR_PATHS[0]).toBe(REST_SERVER);
16401641
const listed = REST_SERVER_REGISTRAR_PATHS.map((file) => readFileSync(join(REPO_ROOT, file), 'utf8'));
16411642
for (const probe of [MECHANICS, ROUTES]) {

‎packages/qa/dogfood/test/authz-probe-blind-spot.census.ts‎

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -540,16 +540,18 @@ export const PROBE_FILE_CENSUS: readonly ProbeFileReading[] = [
540540
'module on the registrar list (`packages/rest/src/rest-server-registrar-files.ts`) — ' +
541541
'`data-action-routes.ts`, `batch-routes.ts`, `approvals-routes.ts`, `sharing-routes.ts`, ' +
542542
'`analytics-routes.ts`, `security-routes.ts`, `discovery-routes.ts`, `email-routes.ts`, ' +
543-
'`search-routes.ts`, `ui-routes.ts`, `form-routes.ts`, `crud-routes.ts` and `meta-collection-routes.ts`, ' +
543+
'`search-routes.ts`, `ui-routes.ts`, `form-routes.ts`, `crud-routes.ts`, `meta-collection-routes.ts` and ' +
544+
'`meta-item-read-routes.ts`, ' +
544545
'the modules the bodies of ' +
545546
'`registerDataActionEndpoints`, `registerBatchEndpoints`, `registerApprovalsEndpoints`, ' +
546547
'`registerSharingEndpoints`, `registerSharingRuleEndpoints`, `registerAnalyticsEndpoints`, ' +
547548
'`registerSecurityExplainEndpoints`, `registerSecurityEndpoints`, `registerDiscoveryEndpoints`, ' +
548549
'`registerOpenApiEndpoints`, `registerEmailEndpoints`, `registerSearchEndpoints`, ' +
549-
'`registerUiEndpoints`, `registerFormEndpoints` and `registerCrudEndpoints`, and the first three `/meta` ' +
550+
'`registerUiEndpoints`, `registerFormEndpoints` and `registerCrudEndpoints`, and the first four `/meta` ' +
550551
'groups of `registerMetadataEndpointsInner`, moved to; ' +
551552
'reachable = those inside registerMetadataEndpoints, PLUS every site in the registrar list\'s named `/meta` ' +
552-
'subset (`REST_SERVER_META_ROUTE_FILES`: `meta-collection-routes.ts`), whose registrations the inner method ' +
553+
'subset (`REST_SERVER_META_ROUTE_FILES`: `meta-collection-routes.ts` and `meta-item-read-routes.ts`), whose ' +
554+
'registrations the inner method ' +
553555
'runs inside the umbrella\'s swap',
554556
// [#15542 / #15854] ⭐ THE POPULATION RULE LEARNED A SECOND SPELLING, and
555557
// the numbers it produces did NOT move: 80 / 19 / 61, exactly as before.
@@ -849,10 +851,25 @@ export const PROBE_FILE_CENSUS: readonly ProbeFileReading[] = [
849851
// `private register*Endpoints(` stays 16, `registerPerItemRoute(` stays 8 and
850852
// `enforceAuth` stays 112: the moved groups spell neither term, and the seam
851853
// spells neither (the umbrella's wrapper is what gates them).
854+
// [#23050 slice 13b] 70 / 19 / 51 UNCHANGED, and `reachable` holds by the rule
855+
// 13a taught, with no rule change: the fourth `/meta` group, the per-item reads
856+
// (four direct registration sites: `/references`, `/layers`, the book tree and
857+
// the item read, all REACHABLE through the same umbrella key), moved to
858+
// `meta-item-read-routes.ts`, which joins the list (length 14 -> 15) and the
859+
// named `/meta` subset (1 -> 2) with its own control. The inner method builds
860+
// its host literal inside the umbrella's swap and calls the module at the
861+
// group's old position, so the subset's length and the module calls inside the
862+
// inner method move together (both 2). Measured at the move commit, before the
863+
// list learned the module: population 66 and `this.routeManager.register(` 59
864+
// over fourteen files, the four sites out of reach. `this.routeManager.register(` stays 63
865+
// over the fifteen files (2 here + 9 + 5 + 7 + 8 + 1 + 6 + 4 + 1 + 1 + 1 + 2 +
866+
// 6 + 6 + 4), `private register*Endpoints(` stays 16, `registerPerItemRoute(`
867+
// stays 8 and `enforceAuth` stays 112: the moved group spells neither term,
868+
// and neither does the seam.
852869
controls: {
853870
'private register*Endpoints(': 16,
854871
'this.routeManager.register(': 63,
855-
'registrar list length': 14,
872+
'registrar list length': 15,
856873
'data-action-routes.ts: this.routeManager.register(': 9,
857874
'batch-routes.ts: this.routeManager.register(': 5,
858875
'approvals-routes.ts: this.routeManager.register(': 7,
@@ -866,6 +883,7 @@ export const PROBE_FILE_CENSUS: readonly ProbeFileReading[] = [
866883
'form-routes.ts: this.routeManager.register(': 2,
867884
'crud-routes.ts: this.routeManager.register(': 6,
868885
'meta-collection-routes.ts: this.routeManager.register(': 6,
886+
'meta-item-read-routes.ts: this.routeManager.register(': 4,
869887
// [#23050 slice 13a] Recorded AS the subset's length, not as a literal: the
870888
// measured side is the module calls inside the inner method, so the two
871889
// can only move together.

‎packages/rest/src/execctx-consumer-census.test.ts‎

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,11 @@ const SOURCE = readFileSync(resolve(HERE, 'rest-server.ts'), 'utf8');
124124
* `registerMetadataEndpointsInner`' body to `meta-collection-routes.ts`, with
125125
* their three: the `_drafts` and `_migrate-stored` doors' and the per-type
126126
* list's, each locally caught (the list's on its continuation line), as before.
127+
*
128+
* [#23050 slice 13b] …and the fourth, the per-item reads, to
129+
* `meta-item-read-routes.ts`, with its one: the item read's, locally caught on
130+
* its continuation line, as before — one of §7's and §8's four continuation
131+
* sites, which those sections find there because they read every file here.
127132
*/
128133
const SITE_FILES = REST_SERVER_REGISTRAR_FILES;
129134
const SOURCES = new Map<string, string>(SITE_FILES.map((file) => [
@@ -139,9 +144,9 @@ const siteKey = (file: string, line: number) => `${file}:${line}`;
139144
* `registerSecurityExplainEndpoints`, `registerSecurityEndpoints`,
140145
* `registerOpenApiEndpoints`, `registerEmailEndpoints`,
141146
* `registerSearchEndpoints`, `registerUiEndpoints`,
142-
* `registerCrudEndpoints`) hands its moved body — and the one
143-
* `registerMetadataEndpointsInner` builds for its moved `/meta` groups (#23050
144-
* slice 13a), counted as the moved module's registrar —
147+
* `registerCrudEndpoints`) hands its moved body — and each one
148+
* `registerMetadataEndpointsInner` builds for a moved `/meta` group's module
149+
* (#23050 slices 13a and 13b), counted as that module's registrar —
145150
* forwards each member to the server with `(...a) => this.<member>(...a)`, so
146151
* a moved site's stack shows
147152
* that forwarder above the site itself. The site is the first censused frame
@@ -748,9 +753,22 @@ describe('[#13160] §2 the consumer surface, counted from the tree', () => {
748753
// forwarder's two mentions in). Fourteen forwarders now: (14 - 1) + 3 - 2,
749754
// the module carrying one host literal that reads the seam, so neither map
750755
// gains an entry.
751-
expect(SITE_FILES).toHaveLength(14);
756+
//
757+
// [#23050 slice 13b] 62 sites UNCHANGED / 133 → 137 mentions — the same MOVE.
758+
// The fourth `/meta` group, the per-item reads, left for
759+
// `meta-item-read-routes.ts` with its one LOCALLY CAUGHT site (the item read's,
760+
// on its continuation line, as before):
761+
// 12 + 9 + 5 + 7 + 8 + 1 + 5 + 2 + 1 + 1 + 1 + 0 + 6 + 3 + 1 = 62 sites. The
762+
// body also carries one prose mention, which moved with it. The four new
763+
// mentions are this slice's seam, the two spellings once (the second host
764+
// literal the inner method builds, its forwarder, two; the host interface's
765+
// member, two): `rest-server.ts` stays at 55 (the site and the prose mention
766+
// out, one forwarder's two mentions in). Fifteen forwarders now:
767+
// (15 - 1) + 3 - 2, the module carrying one host literal that reads the
768+
// seam, so neither map gains an entry.
769+
expect(SITE_FILES).toHaveLength(15);
752770
expect(SITES.length).toBe(62);
753-
expect([...SOURCES.values()].reduce((n, text) => n + text.split('resolveExecCtx').length - 1, 0)).toBe(133);
771+
expect([...SOURCES.values()].reduce((n, text) => n + text.split('resolveExecCtx').length - 1, 0)).toBe(137);
754772
const extraMovedRegistrars = Object.values(EXTRA_MOVED_REGISTRARS).reduce((n, k) => n + (k ?? 0), 0);
755773
expect(extraMovedRegistrars).toBe(3);
756774
const registrarsReadingNoExecCtx = Object.values(MOVED_REGISTRARS_READING_NO_EXECCTX).reduce((n, k) => n + (k ?? 0), 0);

‎packages/rest/src/meta-draft-read-door-census.test.ts‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,11 @@ describe('[#20338] census: every draft switch in rest-server.ts is ledgered', ()
268268
// per-type list's `?preview=draft`. A key names its route, never its file,
269269
// so no ledger row changed:
270270
// 8 = 3 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 3, length 13 → 14.
271-
expect(REST_SERVER_REGISTRAR_FILES).toHaveLength(14);
271+
// [#23050 slice 13b] The per-item reads moved to `meta-item-read-routes.ts`
272+
// with two more: the item read's `?state=draft` and `?preview=draft`. Keys
273+
// name the route, so again no ledger row changed:
274+
// 8 = 1 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 3 + 2, length 14 → 15.
275+
expect(REST_SERVER_REGISTRAR_FILES).toHaveLength(15);
272276
expect(SOURCE_FILES.map((file) => file.fileName)).toEqual([...REST_SERVER_REGISTRAR_FILES]);
273277
expect(SITES).toHaveLength(8);
274278
});

‎packages/rest/src/rest-server-canonical-query-ast.test.ts‎

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,10 @@ interface CensusEntry {
178178
* no `query:` slot. The per-type list's one `query` key sits mid-line in the
179179
* list chain's options literal, which `querySlots` (a line-initial `query:`)
180180
* does not read, as before the move, so the moved module's floor is 0.
181+
*
182+
* [#23050 slice 13b] 4 = 0 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0,
183+
* unchanged: the per-item reads (`meta-item-read-routes.ts`) build no `query:`
184+
* slot either, so the moved module's floor is 0.
181185
*/
182186
const REGISTRAR_QUERY_SLOT_FLOORS: Readonly<Record<RestServerRegistrarFile, number>> = {
183187
'rest-server.ts': 0,
@@ -194,6 +198,7 @@ const REGISTRAR_QUERY_SLOT_FLOORS: Readonly<Record<RestServerRegistrarFile, numb
194198
'form-routes.ts': 0,
195199
'crud-routes.ts': 1,
196200
'meta-collection-routes.ts': 0,
201+
'meta-item-read-routes.ts': 0,
197202
};
198203

199204
const CENSUS: CensusEntry[] = [
@@ -393,7 +398,9 @@ describe('[#16638] §1 CONTROLS on the census instrument itself', () => {
393398
// from `rest-server.ts` to `crud-routes.ts`).
394399
// [#23050 slice 13a] Length 13 → 14, the sum unchanged (the moved `/meta`
395400
// groups carry no slot).
396-
expect(REST_SERVER_REGISTRAR_FILES).toHaveLength(14);
401+
// [#23050 slice 13b] Length 14 → 15, the sum unchanged (the per-item reads
402+
// carry no slot).
403+
expect(REST_SERVER_REGISTRAR_FILES).toHaveLength(15);
397404
expect(Object.keys(REGISTRAR_QUERY_SLOT_FLOORS).sort()).toEqual([...REST_SERVER_REGISTRAR_FILES].sort());
398405
expect(CENSUS.filter(({ file }) => REGISTRAR_SOURCES.has(file)).map(({ file }) => file))
399406
.toEqual([...REST_SERVER_REGISTRAR_FILES]);

‎packages/rest/src/rest-server-docblock-position.test.ts‎

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,14 @@ describe('rest-server.ts docblock position', () => {
200200
* function's. `ui-routes.ts` therefore gives up that block (4 → 3). The moved
201201
* `/meta` groups held no TSDoc block of their own, so `rest-server.ts` keeps
202202
* every block it had (163).
203+
*
204+
* [#23050 slice 13b] `meta-item-read-routes.ts` carries five: the module
205+
* header, the host interface's block, the function's, and the blocks of the two
206+
* module-level helpers only the per-item reads called, which moved with them
207+
* (the reference sweep's declared-refusal re-dresser and the intake reasons'
208+
* ETag dimension). The moved `/meta` group held no TSDoc block of its own, so
209+
* `rest-server.ts` gives up exactly those two (163 → 161), still far above its
210+
* floor.
203211
*/
204212
const MOVED_FILE_FLOORS: Readonly<Record<Exclude<RestServerRegistrarFile, typeof FILE>, number>> = {
205213
'data-action-routes.ts': 4,
@@ -215,6 +223,7 @@ const MOVED_FILE_FLOORS: Readonly<Record<Exclude<RestServerRegistrarFile, typeof
215223
'form-routes.ts': 3,
216224
'crud-routes.ts': 3,
217225
'meta-collection-routes.ts': 5,
226+
'meta-item-read-routes.ts': 5,
218227
};
219228
const MOVED_FILES: ReadonlyArray<{ file: string; minBlocks: number }> = REST_SERVER_REGISTRAR_FILES
220229
.filter((file): file is Exclude<RestServerRegistrarFile, typeof FILE> => file !== FILE)
@@ -253,9 +262,11 @@ describe('[#23050 slice 3] the registrar list this pin reads', () => {
253262
// [#23050 slice 12] 4 + 3 + 3 + 8 + 3 + 8 + 5 + 3 + 3 + 4 + 3 + 3 = 50 over twelve, length 12 → 13.
254263
// [#23050 slice 13a] 4 + 3 + 3 + 8 + 3 + 8 + 5 + 3 + 3 + 3 + 3 + 3 + 5 = 54 over
255264
// thirteen, length 13 → 14 (`ui-routes.ts` 4 → 3: the alias's block moved on).
256-
expect(REST_SERVER_REGISTRAR_FILES).toHaveLength(14);
265+
// [#23050 slice 13b] 4 + 3 + 3 + 8 + 3 + 8 + 5 + 3 + 3 + 3 + 3 + 3 + 5 + 5 = 59 over
266+
// fourteen, length 14 → 15.
267+
expect(REST_SERVER_REGISTRAR_FILES).toHaveLength(15);
257268
expect(Object.keys(MOVED_FILE_FLOORS).sort())
258269
.toEqual(REST_SERVER_REGISTRAR_FILES.filter((file) => file !== FILE).sort());
259-
expect(MOVED_FILES.reduce((n, { minBlocks }) => n + minBlocks, 0)).toBe(54);
270+
expect(MOVED_FILES.reduce((n, { minBlocks }) => n + minBlocks, 0)).toBe(59);
260271
});
261272
});

‎packages/rest/src/rest-server-query-number-census.test.ts‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,11 @@ describe('#20139 census — every numeric coercion in rest-server.ts is classifi
343343
// (`meta-collection-routes.ts`): the type list, the whole-store family and
344344
// the per-type list coerce no number of the query:
345345
// 9 = 8 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0, length 13 → 14.
346-
expect(REST_SERVER_REGISTRAR_FILES).toHaveLength(14);
346+
// [#23050 slice 13b] Nor do the per-item reads (`meta-item-read-routes.ts`):
347+
// the reference sweep, the layered read, the book tree and the item read
348+
// coerce no number of the query:
349+
// 9 = 8 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0, length 14 → 15.
350+
expect(REST_SERVER_REGISTRAR_FILES).toHaveLength(15);
347351
expect(SOURCES.map(([file]) => file)).toEqual([...REST_SERVER_REGISTRAR_FILES]);
348352
expect(sites).toHaveLength(9);
349353
});

‎packages/rest/src/ui-view-route-identity.measurement.test.ts‎

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -380,7 +380,12 @@ describe('[#13214] §1 the REST seam — absent context vs entitled context', ()
380380
// sites and `enforceAuth` at none (the umbrella's wrapper gates them), so
381381
// the host literal the inner method builds forwards the first only; the
382382
// three call sites moved and are counted in both readings.
383-
expect(REST_SERVER_REGISTRAR_FILES).toHaveLength(14);
383+
// [#23050 slice 13b] 14 → 15 (`meta-item-read-routes.ts`): 60 unchanged
384+
// and 76 → 77, the same shape: the per-item reads call `resolveExecCtx` at
385+
// one site and `enforceAuth` at none, so the second host literal the inner
386+
// method builds forwards the first only; the call site moved and is
387+
// counted in both readings.
388+
expect(REST_SERVER_REGISTRAR_FILES).toHaveLength(15);
384389
expect(REGISTRAR_SOURCES.split('this.enforceAuth(').length - 1).toBeGreaterThan(40);
385390
expect(REGISTRAR_SOURCES.split('this.resolveExecCtx(').length - 1).toBeGreaterThan(40);
386391
});

0 commit comments

Comments
 (0)