@gate-forge/core 0.9.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/classifier/classify.d.ts +1 -0
- package/dist/classifier/classify.d.ts.map +1 -1
- package/dist/classifier/classify.js +63 -10
- package/dist/classifier/classify.js.map +1 -1
- package/dist/config/index.d.ts +6 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +25 -0
- package/dist/config/index.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/mapping/resolve.d.ts +15 -3
- package/dist/mapping/resolve.d.ts.map +1 -1
- package/dist/mapping/resolve.js +315 -40
- package/dist/mapping/resolve.js.map +1 -1
- package/dist/schemas/classification-policy.d.ts +42 -0
- package/dist/schemas/classification-policy.d.ts.map +1 -1
- package/dist/schemas/classification-policy.js +105 -0
- package/dist/schemas/classification-policy.js.map +1 -1
- package/dist/verdict/pack-verifiers.d.ts.map +1 -1
- package/dist/verdict/pack-verifiers.js +257 -56
- package/dist/verdict/pack-verifiers.js.map +1 -1
- package/package.json +1 -1
package/dist/mapping/resolve.js
CHANGED
|
@@ -506,6 +506,59 @@ const ROUTE_FILLER_SEGMENTS = Object.freeze({
|
|
|
506
506
|
gateway: true,
|
|
507
507
|
service: true,
|
|
508
508
|
});
|
|
509
|
+
/**
|
|
510
|
+
* Plane qualifiers qualify EVERY resource in the plane, so they identify
|
|
511
|
+
* no resource at all: `@crud(tenant.accounts:create)` must never rank a
|
|
512
|
+
* candidate for `tenant.http-get-api-v1-notifications-…`.
|
|
513
|
+
*/
|
|
514
|
+
const PLANE_NAME_TOKENS = Object.freeze({
|
|
515
|
+
tenant: true,
|
|
516
|
+
master: true,
|
|
517
|
+
global: true,
|
|
518
|
+
});
|
|
519
|
+
/** HTTP verbs a generated `http-<method>-…` endpoint name spells out. */
|
|
520
|
+
const HTTP_METHOD_TOKENS = Object.freeze({
|
|
521
|
+
get: true,
|
|
522
|
+
post: true,
|
|
523
|
+
put: true,
|
|
524
|
+
patch: true,
|
|
525
|
+
delete: true,
|
|
526
|
+
head: true,
|
|
527
|
+
options: true,
|
|
528
|
+
});
|
|
529
|
+
/**
|
|
530
|
+
* Whether one resource-id token names the RESOURCE or only the structure
|
|
531
|
+
* around it: the plane, the transport, the method, route furniture, a
|
|
532
|
+
* version segment, the generated `param` marker that stands in for a
|
|
533
|
+
* `{route_param}`, or the generated id-hash suffix. Only real names may
|
|
534
|
+
* be matched against a test title or file.
|
|
535
|
+
*/
|
|
536
|
+
function isStructuralResourceToken(token) {
|
|
537
|
+
if (PLANE_NAME_TOKENS[token] === true)
|
|
538
|
+
return true;
|
|
539
|
+
if (GENERATED_ID_TOKENS[token] === true)
|
|
540
|
+
return true;
|
|
541
|
+
if (HTTP_METHOD_TOKENS[token] === true)
|
|
542
|
+
return true;
|
|
543
|
+
if (ROUTE_FILLER_SEGMENTS[token] === true)
|
|
544
|
+
return true;
|
|
545
|
+
if (/^v\d+$/.test(token))
|
|
546
|
+
return true;
|
|
547
|
+
// A generated id suffix (`…-27cb390c`). At least one digit is required so
|
|
548
|
+
// real hex-looking words (`decade`, `facade`) stay resource names.
|
|
549
|
+
return /^[0-9a-f]{6,}$/.test(token) && /\d/.test(token);
|
|
550
|
+
}
|
|
551
|
+
/** The marker a generated id carries for each `{param}` in the route. */
|
|
552
|
+
const GENERATED_ID_TOKENS = Object.freeze({
|
|
553
|
+
param: true,
|
|
554
|
+
});
|
|
555
|
+
/** The matchable resource-name tokens of one resource id. */
|
|
556
|
+
function resourceTokens(resourceId) {
|
|
557
|
+
return resourceId
|
|
558
|
+
.split(/[.\-_]/)
|
|
559
|
+
.map((token) => token.toLowerCase())
|
|
560
|
+
.filter((token) => token.length > 2 && !isStructuralResourceToken(token) && OPERATION_WORDS[token] !== true);
|
|
561
|
+
}
|
|
509
562
|
/**
|
|
510
563
|
* The route segments of one obligation's hints worth matching against a
|
|
511
564
|
* test's title/file: no path parameters, no version or filler segments.
|
|
@@ -542,22 +595,72 @@ function titleWords(titlePath) {
|
|
|
542
595
|
.split(/[^a-z0-9]+/)
|
|
543
596
|
.filter((word) => word.length > 2);
|
|
544
597
|
}
|
|
545
|
-
/**
|
|
546
|
-
|
|
547
|
-
|
|
598
|
+
/** A parenthesised `@tag(...)` in a title: declaration text, not prose. */
|
|
599
|
+
const TITLE_TAG_PATTERN = /@[A-Za-z][A-Za-z0-9_-]*\([^)]*\)/g;
|
|
600
|
+
/** The title path with every `@tag(...)` removed (used for word matching). */
|
|
601
|
+
function proseTitlePath(titlePath) {
|
|
602
|
+
return titlePath.map((segment) => segment.replace(TITLE_TAG_PATTERN, ' '));
|
|
603
|
+
}
|
|
604
|
+
/**
|
|
605
|
+
* The CRUD operation each HTTP method exercises, for the fit check an
|
|
606
|
+
* explicit tag must pass before it counts for a transport obligation.
|
|
607
|
+
*/
|
|
608
|
+
const HTTP_METHOD_OPERATIONS = Object.freeze({
|
|
609
|
+
GET: 'read',
|
|
610
|
+
HEAD: 'read',
|
|
611
|
+
POST: 'create',
|
|
612
|
+
PUT: 'update',
|
|
613
|
+
PATCH: 'update',
|
|
614
|
+
DELETE: 'delete',
|
|
615
|
+
});
|
|
616
|
+
/**
|
|
617
|
+
* The operation an `http:*` obligation's own route method exercises, or
|
|
618
|
+
* null when the obligation is not transport-shaped or its route hint
|
|
619
|
+
* names no known method. A tag that DECLARES an operation is evidence
|
|
620
|
+
* for an obligation only when the two agree: `@crud(…:create)` says the
|
|
621
|
+
* test creates the resource, which is no evidence that it reads
|
|
622
|
+
* `GET /api/v2/accounts` — and answering `new test needed: no` from it
|
|
623
|
+
* sent an owner to mark a create test as the proof of a read. A
|
|
624
|
+
* non-transport obligation has no route method to fit, so its tags stay
|
|
625
|
+
* judged on the resource alone.
|
|
626
|
+
*/
|
|
627
|
+
function transportOperationOf(obligationId, routes) {
|
|
628
|
+
if ((obligationId.split(':')[1] ?? '').toLowerCase() !== 'http')
|
|
629
|
+
return null;
|
|
630
|
+
const method = (routes[0] ?? '').split(/\s+/)[0]?.toUpperCase() ?? '';
|
|
631
|
+
return HTTP_METHOD_OPERATIONS[method] ?? null;
|
|
632
|
+
}
|
|
633
|
+
function explicitTags(titlePath) {
|
|
634
|
+
const tags = [];
|
|
548
635
|
for (const segment of titlePath) {
|
|
549
|
-
for (const match of segment.matchAll(/@(?:crud|gateforge|resource
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
636
|
+
for (const match of segment.matchAll(/@(?:crud|gateforge|resource)\(([^)]*)\)/g)) {
|
|
637
|
+
const parts = (match[1] ?? '').split(':');
|
|
638
|
+
const tokens = [];
|
|
639
|
+
for (const token of (parts[0] ?? '').split(/[^A-Za-z0-9]+/)) {
|
|
640
|
+
const name = token.toLowerCase();
|
|
641
|
+
if (name.length > 2 && PLANE_NAME_TOKENS[name] !== true)
|
|
642
|
+
tokens.push(name);
|
|
553
643
|
}
|
|
644
|
+
tags.push({ tokens, operation: (parts[1] ?? '').toLowerCase() || null });
|
|
554
645
|
}
|
|
555
646
|
}
|
|
556
|
-
return
|
|
647
|
+
return tags;
|
|
648
|
+
}
|
|
649
|
+
/** Whether one catalog row's file path names the obligation's route. */
|
|
650
|
+
function fileNamesRoute(fileWords, routeSegments) {
|
|
651
|
+
const meaningful = routeSegments.filter((segment) => OPERATION_WORDS[segment] !== true);
|
|
652
|
+
if (meaningful.length === 0)
|
|
653
|
+
return false;
|
|
654
|
+
const needed = Math.min(2, meaningful.length);
|
|
655
|
+
const named = meaningful.filter((segment) => fileWords.includes(segment)).length;
|
|
656
|
+
return named >= needed;
|
|
557
657
|
}
|
|
558
658
|
/**
|
|
559
659
|
* Scores ONE catalog row against one obligation by the evidence the row
|
|
560
|
-
* carries, and explains every contributing signal in plain words.
|
|
660
|
+
* carries, and explains every contributing signal in plain words. Every
|
|
661
|
+
* match is WHOLE-WORD (title path words; file path segments split on
|
|
662
|
+
* `/ . _ -`), never a substring: a token hidden inside a longer word
|
|
663
|
+
* (`read` in `reference`) is not evidence about anything.
|
|
561
664
|
*
|
|
562
665
|
* Args:
|
|
563
666
|
* obligationId: the obligation the row is a candidate for.
|
|
@@ -565,52 +668,92 @@ function explicitTagTokens(titlePath) {
|
|
|
565
668
|
* routes: the obligation's route hints (e.g. `GET /api/v2/accounts`).
|
|
566
669
|
*
|
|
567
670
|
* Returns:
|
|
568
|
-
*
|
|
671
|
+
* CandidateEvidence: the additive score, its human reasons, and the
|
|
672
|
+
* boolean inputs the reuse verdict reads.
|
|
569
673
|
*/
|
|
570
674
|
function candidateEvidence(obligationId, row, routes) {
|
|
571
675
|
const resourceId = obligationId.slice(0, Math.max(0, obligationId.indexOf(':')));
|
|
572
|
-
const tokens = resourceId
|
|
573
|
-
.split(/[.\-_]/)
|
|
574
|
-
.map((token) => token.toLowerCase())
|
|
575
|
-
.filter((token) => token.length > 2);
|
|
676
|
+
const tokens = resourceTokens(resourceId);
|
|
576
677
|
const why = [];
|
|
577
678
|
let score = 0;
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
679
|
+
// Whole-word matching, never substrings: `read` is not inside
|
|
680
|
+
// `reference`, and `notifications` is not inside `notification`. A
|
|
681
|
+
// `@crud(...)` tag is a DECLARATION, so its text is stripped before the
|
|
682
|
+
// title is read as prose (tag matching stays a separate, explicit path).
|
|
683
|
+
const words = titleWords(proseTitlePath(row.titlePath));
|
|
684
|
+
const fileWords = row.file.toLowerCase().split(/[^a-z0-9]+/).filter((word) => word.length > 0);
|
|
685
|
+
const tags = explicitTags(row.titlePath);
|
|
686
|
+
// A tag that DECLARES an operation is evidence for a TRANSPORT
|
|
687
|
+
// obligation only when the operation fits the route's method; for
|
|
688
|
+
// every other obligation (and for a route hint naming no known
|
|
689
|
+
// method) the operation is null and the resource part stands on its
|
|
690
|
+
// own. A tag that declares NO operation names the resource and
|
|
691
|
+
// stops there — it is never contradicted by the method, so it keeps
|
|
692
|
+
// its full credit on a transport obligation too.
|
|
693
|
+
const requiredOperation = transportOperationOf(obligationId, routes);
|
|
582
694
|
const operationWords = OPERATION_TITLE_WORDS[operationOf(obligationId)] ?? [];
|
|
583
695
|
const routeSegments = routeSegmentsOf(routes);
|
|
696
|
+
// One word counts once: the first (strongest) signal for it is the only
|
|
697
|
+
// one, so a resource token that is also a route segment never scores
|
|
698
|
+
// twice, and an operation word is never mistaken for a resource name.
|
|
699
|
+
const counted = new Set();
|
|
700
|
+
let distinctive = false;
|
|
701
|
+
let explicitTag = false;
|
|
702
|
+
let resourceToken = false;
|
|
584
703
|
for (const token of tokens) {
|
|
585
|
-
if (
|
|
704
|
+
if (counted.has(token))
|
|
705
|
+
continue;
|
|
706
|
+
if (tags.some((tag) => tag.tokens.includes(token) &&
|
|
707
|
+
(requiredOperation === null || tag.operation === null || tag.operation === requiredOperation))) {
|
|
708
|
+
counted.add(token);
|
|
709
|
+
distinctive = true;
|
|
710
|
+
explicitTag = true;
|
|
586
711
|
score += CANDIDATE_SCORE['explicitTag'] ?? 0;
|
|
587
712
|
why.push(`explicit tag names this obligation's resource '${token}'`);
|
|
588
713
|
continue;
|
|
589
714
|
}
|
|
590
|
-
if (
|
|
715
|
+
if (words.includes(token)) {
|
|
716
|
+
counted.add(token);
|
|
717
|
+
distinctive = true;
|
|
718
|
+
resourceToken = true;
|
|
591
719
|
score += CANDIDATE_SCORE['titleResourceToken'] ?? 0;
|
|
592
720
|
why.push(`resource token '${token}' matches the test title path`);
|
|
593
721
|
}
|
|
594
|
-
else if (
|
|
722
|
+
else if (fileWords.includes(token)) {
|
|
723
|
+
counted.add(token);
|
|
724
|
+
distinctive = true;
|
|
725
|
+
resourceToken = true;
|
|
595
726
|
score += CANDIDATE_SCORE['fileResourceToken'] ?? 0;
|
|
596
727
|
why.push(`resource token '${token}' matches the test file '${row.file}'`);
|
|
597
728
|
}
|
|
598
|
-
else if (row.categorySignals.some((signal) => signal.label.toLowerCase().includes(token))) {
|
|
729
|
+
else if (row.categorySignals.some((signal) => signal.label.toLowerCase().split(/[^a-z0-9]+/).includes(token))) {
|
|
730
|
+
counted.add(token);
|
|
731
|
+
distinctive = true;
|
|
732
|
+
resourceToken = true;
|
|
599
733
|
score += CANDIDATE_SCORE['categoryToken'] ?? 0;
|
|
600
734
|
why.push(`resource token '${token}' matches a category label`);
|
|
601
735
|
}
|
|
602
736
|
}
|
|
603
737
|
const operation = operationOf(obligationId);
|
|
604
738
|
if (operation.length > 2 && operationWords.some((word) => words.includes(word))) {
|
|
739
|
+
counted.add(operation);
|
|
605
740
|
score += CANDIDATE_SCORE['titleOperationToken'] ?? 0;
|
|
606
741
|
why.push(`title names the obligation's operation '${operation}'`);
|
|
607
742
|
}
|
|
608
743
|
for (const segment of routeSegments) {
|
|
609
|
-
if (
|
|
744
|
+
if (counted.has(segment))
|
|
745
|
+
continue;
|
|
746
|
+
if (words.includes(segment)) {
|
|
747
|
+
counted.add(segment);
|
|
748
|
+
if (OPERATION_WORDS[segment] !== true)
|
|
749
|
+
distinctive = true;
|
|
610
750
|
score += CANDIDATE_SCORE['titleRouteSegment'] ?? 0;
|
|
611
751
|
why.push(`title mentions the obligation's route segment '${segment}'`);
|
|
612
752
|
}
|
|
613
|
-
else if (
|
|
753
|
+
else if (fileWords.includes(segment)) {
|
|
754
|
+
counted.add(segment);
|
|
755
|
+
if (OPERATION_WORDS[segment] !== true)
|
|
756
|
+
distinctive = true;
|
|
614
757
|
score += CANDIDATE_SCORE['fileRouteSegment'] ?? 0;
|
|
615
758
|
why.push(`test file mentions the obligation's route segment '${segment}'`);
|
|
616
759
|
}
|
|
@@ -623,19 +766,59 @@ function candidateEvidence(obligationId, row, routes) {
|
|
|
623
766
|
score += CANDIDATE_SCORE['mockedSuppression'] ?? 0;
|
|
624
767
|
why.push('mocks the system under test (weaker evidence)');
|
|
625
768
|
}
|
|
626
|
-
|
|
769
|
+
// An unmocked folder, an operation word or a mock signal alone never makes
|
|
770
|
+
// a candidate: there must be at least one DISTINCTIVE match — a resource
|
|
771
|
+
// token or a route segment that is not an operation word.
|
|
772
|
+
const verdict = { explicitTag, resourceToken, fileNamesRoute: fileNamesRoute(fileWords, routeSegments) };
|
|
773
|
+
return distinctive ? { score, why, verdict } : { score: 0, why: [], verdict };
|
|
627
774
|
}
|
|
628
775
|
/**
|
|
629
|
-
*
|
|
630
|
-
* resource
|
|
631
|
-
*
|
|
632
|
-
*
|
|
633
|
-
*
|
|
776
|
+
* Every word the operation table uses. These name an OPERATION, never a
|
|
777
|
+
* resource: `tenant.accounts:…:read` says what the obligation DOES, so a
|
|
778
|
+
* title that merely says "read tenant.accounts through UI" is evidence
|
|
779
|
+
* about no resource in particular. They are never resource tokens, and a
|
|
780
|
+
* row that matches nothing else is not a candidate at all.
|
|
781
|
+
*/
|
|
782
|
+
const OPERATION_WORDS = Object.freeze(Object.fromEntries(Object.values(OPERATION_TITLE_WORDS)
|
|
783
|
+
.flat()
|
|
784
|
+
.map((word) => [word, true])));
|
|
785
|
+
/**
|
|
786
|
+
* Contract families whose proof is an OBSERVED-E2E suite test (the Observe
|
|
787
|
+
* channel): a `unit` suite drives no app and witnesses nothing, so such a
|
|
788
|
+
* row can never be the answer for them. Other families keep today's
|
|
789
|
+
* behaviour — the catalog kind is evidence about the CHANNEL, and mapping
|
|
790
|
+
* every contract onto it would be a second classification.
|
|
791
|
+
*/
|
|
792
|
+
const OBSERVED_E2E_CONTRACT_FAMILIES = Object.freeze({
|
|
793
|
+
persistence: true,
|
|
794
|
+
crud: true,
|
|
795
|
+
http: true,
|
|
796
|
+
});
|
|
797
|
+
/**
|
|
798
|
+
* Deterministic token inference (plan Phase 3 item 2): the RESOURCE-NAME
|
|
799
|
+
* tokens of the obligation's resource id (`tenant.accounts` → `accounts`;
|
|
800
|
+
* the plane, transport, method, route furniture, and id hash are structure,
|
|
801
|
+
* not names) matched WHOLE-WORD against catalog rows' files, title paths,
|
|
802
|
+
* and category labels, plus the obligation's operation and route hints.
|
|
803
|
+
* Candidates are ordered by evidence score (strongest first), then by
|
|
804
|
+
* logical key for stability.
|
|
634
805
|
* Signals feed SUGGESTIONS only — an inference never writes a mapping (§5.3).
|
|
635
806
|
*/
|
|
636
807
|
function inferredCandidates(obligationId, catalog, routes) {
|
|
637
808
|
const candidates = [];
|
|
809
|
+
const contractFamily = (obligationId.split(':')[1] ?? '').toLowerCase();
|
|
810
|
+
const observedE2e = OBSERVED_E2E_CONTRACT_FAMILIES[contractFamily] === true;
|
|
638
811
|
for (const row of catalog.entries) {
|
|
812
|
+
// ELIGIBILITY before ranking: a `static-only` row is a test-shaped file
|
|
813
|
+
// no runner enumerated (a Vitest jsdom suite inside a
|
|
814
|
+
// Playwright-configured repository, say). It can never produce the
|
|
815
|
+
// witnessed evidence a mapping promises, so it is never offered.
|
|
816
|
+
if (row.reconciliation === 'static-only')
|
|
817
|
+
continue;
|
|
818
|
+
// A `unit` suite drives no app: for an observed-e2e contract it can
|
|
819
|
+
// never be the test that witnesses the claim.
|
|
820
|
+
if (observedE2e && row.inferredKind === 'unit')
|
|
821
|
+
continue;
|
|
639
822
|
const evidence = candidateEvidence(obligationId, row, routes);
|
|
640
823
|
if (evidence.why.length === 0)
|
|
641
824
|
continue;
|
|
@@ -697,6 +880,70 @@ function reuseNextAction(obligationId, candidate) {
|
|
|
697
880
|
`--obligation ${obligationId} --reason "existing suite-driven browser test"\`, ` +
|
|
698
881
|
`then \`gateforge test-gates --changed\` to collect its witnessed evidence`);
|
|
699
882
|
}
|
|
883
|
+
/**
|
|
884
|
+
* The next action when reuse is PLAUSIBLE but unproven: confirm the
|
|
885
|
+
* request first, and only then mark. This never prints a ready-to-run
|
|
886
|
+
* `tests mark` command — handing the owner a command to run is exactly
|
|
887
|
+
* the advice that was wrong when the single-signal candidate looked
|
|
888
|
+
* settled.
|
|
889
|
+
*
|
|
890
|
+
* Args:
|
|
891
|
+
* obligationId: the obligation the suggestion is about.
|
|
892
|
+
* candidate: the top-ranked candidate.
|
|
893
|
+
* route: the request the candidate must really send.
|
|
894
|
+
*
|
|
895
|
+
* Returns:
|
|
896
|
+
* string: the confirmation-first next action.
|
|
897
|
+
*/
|
|
898
|
+
function unverifiedNextAction(obligationId, candidate, route) {
|
|
899
|
+
const where = candidate === undefined
|
|
900
|
+
? ''
|
|
901
|
+
: ` Read ${candidate.file} and check that it really sends it.`;
|
|
902
|
+
return (`check that the candidate really sends ${route} before marking it — ` +
|
|
903
|
+
`run \`gateforge explain ${obligationId}\` to see the obligation.${where} ` +
|
|
904
|
+
'A shared name is not proof; mark only once the request is in there.');
|
|
905
|
+
}
|
|
906
|
+
/**
|
|
907
|
+
* The REUSE verdict for one obligation's candidate list.
|
|
908
|
+
*
|
|
909
|
+
* `yes` when nothing can be reused: no candidate survived resolution, or
|
|
910
|
+
* every candidate mocks the system under test (a mock can never witness
|
|
911
|
+
* the claim, so it is not a reuse answer at all).
|
|
912
|
+
*
|
|
913
|
+
* `no` only when the #1 candidate is an unmocked e2e row AND the evidence
|
|
914
|
+
* is more than one signal — an explicit tag that NAMES this resource, or
|
|
915
|
+
* a resource-token match together with the file naming the route. One
|
|
916
|
+
* shared word is a coincidence; a file named `admin_login.spec.js` for
|
|
917
|
+
* `POST /admin/auth/login` is that route.
|
|
918
|
+
*
|
|
919
|
+
* Anything else is `unverified`: a candidate exists, reuse may well be
|
|
920
|
+
* right, and NOTHING HERE PROVES IT. That is the honest answer, and it
|
|
921
|
+
* is why it is a third state instead of a `false` that reads as "reuse
|
|
922
|
+
* is settled".
|
|
923
|
+
*
|
|
924
|
+
* Args:
|
|
925
|
+
* candidates: the ranked candidate list (empty when none survived).
|
|
926
|
+
* mockedKeys: logical keys whose rows mock the system under test.
|
|
927
|
+
* verdictOf: the evidence verdict for a candidate's logical key.
|
|
928
|
+
*
|
|
929
|
+
* Returns:
|
|
930
|
+
* 'yes' | 'no' | 'unverified': the reuse verdict.
|
|
931
|
+
*/
|
|
932
|
+
function reuseVerdict(candidates, mockedKeys, verdictOf) {
|
|
933
|
+
if (candidates.length === 0)
|
|
934
|
+
return 'yes';
|
|
935
|
+
if (candidates.every((candidate) => mockedKeys.has(candidate.logicalKey)))
|
|
936
|
+
return 'yes';
|
|
937
|
+
const top = candidates[0];
|
|
938
|
+
if (top === undefined || mockedKeys.has(top.logicalKey))
|
|
939
|
+
return 'unverified';
|
|
940
|
+
const verdict = verdictOf(top.logicalKey);
|
|
941
|
+
if (verdict === undefined)
|
|
942
|
+
return 'unverified';
|
|
943
|
+
if (verdict.explicitTag)
|
|
944
|
+
return 'no';
|
|
945
|
+
return verdict.resourceToken && verdict.fileNamesRoute ? 'no' : 'unverified';
|
|
946
|
+
}
|
|
700
947
|
/**
|
|
701
948
|
* Scores, orders, and numbers one obligation's candidate rows: evidence
|
|
702
949
|
* score first (strongest match ranks #1), logical key second for
|
|
@@ -712,7 +959,8 @@ function rankCandidates(candidates) {
|
|
|
712
959
|
* Produces per-obligation reuse suggestions ordered by reuse (plan
|
|
713
960
|
* Phase 3 item 6). Obligations with a clean DECLARED mapping produce no
|
|
714
961
|
* suggestion (their remaining gap is executed proof, not mapping).
|
|
715
|
-
* `newTestNeeded` is
|
|
962
|
+
* `newTestNeeded` is a three-state REUSE verdict, not a boolean — see
|
|
963
|
+
* {@link MappingSuggestion.newTestNeeded}.
|
|
716
964
|
*
|
|
717
965
|
* Args:
|
|
718
966
|
* input: catalog, scoped obligation ids, and the resolution.
|
|
@@ -735,7 +983,9 @@ export function mappingSuggestions(input) {
|
|
|
735
983
|
candidates: [],
|
|
736
984
|
missingEvidence: 'a safe, unambiguous declaration (the current declaration conflicts with itself or the catalog)',
|
|
737
985
|
nextAction: CAUSE_NEXT_ACTIONS['TEST_MAPPING_AMBIGUOUS'],
|
|
738
|
-
|
|
986
|
+
// A declaration exists and conflicts with itself: the gap is a
|
|
987
|
+
// repair, never a new test.
|
|
988
|
+
newTestNeeded: 'no',
|
|
739
989
|
});
|
|
740
990
|
continue;
|
|
741
991
|
}
|
|
@@ -756,7 +1006,7 @@ export function mappingSuggestions(input) {
|
|
|
756
1006
|
candidates,
|
|
757
1007
|
missingEvidence: `an up-to-date declaration (the current one is stale: ${stale.detail})`,
|
|
758
1008
|
nextAction: CAUSE_NEXT_ACTIONS['TEST_MAPPING_STALE'],
|
|
759
|
-
newTestNeeded: candidates.length === 0,
|
|
1009
|
+
newTestNeeded: candidates.length === 0 ? 'yes' : 'no',
|
|
760
1010
|
});
|
|
761
1011
|
continue;
|
|
762
1012
|
}
|
|
@@ -778,21 +1028,29 @@ export function mappingSuggestions(input) {
|
|
|
778
1028
|
})),
|
|
779
1029
|
missingEvidence: 'a declared kind for the connected test (code analysis could not classify it)',
|
|
780
1030
|
nextAction: CAUSE_NEXT_ACTIONS['TEST_KIND_UNKNOWN'],
|
|
781
|
-
|
|
1031
|
+
// A test is already declared; only its kind is missing.
|
|
1032
|
+
newTestNeeded: 'no',
|
|
782
1033
|
});
|
|
783
1034
|
continue;
|
|
784
1035
|
}
|
|
785
1036
|
if (declared.length > 0)
|
|
786
1037
|
continue; // declared + clean: the gap is execution, not mapping
|
|
1038
|
+
const mockedKeys = new Set();
|
|
1039
|
+
const verdicts = new Map();
|
|
787
1040
|
const candidates = rankCandidates(bindings.map((binding) => {
|
|
788
1041
|
const row = rowsByKey.get(binding.logicalKey);
|
|
789
1042
|
const hint = observeHintForRow(row);
|
|
790
1043
|
const base = binding.origin === 'inferred' || binding.origin === 'prior-run'
|
|
791
1044
|
? (binding.reason ?? binding.origin)
|
|
792
1045
|
: `bound by native annotation (${binding.logicalKey})`;
|
|
1046
|
+
if (row?.suppressionSignals.some((signal) => signal.kind === 'mock') === true) {
|
|
1047
|
+
mockedKeys.add(binding.logicalKey);
|
|
1048
|
+
}
|
|
793
1049
|
const evidence = row === undefined
|
|
794
|
-
? { score: 0, why: [] }
|
|
1050
|
+
? { score: 0, why: [], verdict: undefined }
|
|
795
1051
|
: candidateEvidence(obligationId, row, input.routeHints?.get(obligationId) ?? []);
|
|
1052
|
+
if (evidence.verdict !== undefined)
|
|
1053
|
+
verdicts.set(binding.logicalKey, evidence.verdict);
|
|
796
1054
|
return {
|
|
797
1055
|
logicalKey: binding.logicalKey,
|
|
798
1056
|
file: binding.instances[0]?.file ?? '',
|
|
@@ -800,15 +1058,32 @@ export function mappingSuggestions(input) {
|
|
|
800
1058
|
score: evidence.score,
|
|
801
1059
|
};
|
|
802
1060
|
}));
|
|
1061
|
+
// A mocked candidate can never witness the claim, so when every
|
|
1062
|
+
// candidate mocks the system under test the obligation is not
|
|
1063
|
+
// satisfiable by reuse: a NEW test is needed. The mocked rows stay
|
|
1064
|
+
// listed as context, and no `tests mark` is offered for them.
|
|
1065
|
+
const onlyMocked = candidates.length > 0 && candidates.every((candidate) => mockedKeys.has(candidate.logicalKey));
|
|
1066
|
+
const verdict = reuseVerdict(candidates, mockedKeys, (key) => verdicts.get(key));
|
|
1067
|
+
// The request the candidate must REALLY send before a mark is honest:
|
|
1068
|
+
// the obligation's own route hint, never a guess.
|
|
1069
|
+
const route = input.routeHints?.get(obligationId)?.[0] ?? 'the request this obligation describes';
|
|
803
1070
|
suggestions.push({
|
|
804
1071
|
obligationId,
|
|
805
1072
|
cause: 'TEST_MAPPING_MISSING',
|
|
806
1073
|
candidates,
|
|
807
|
-
missingEvidence:
|
|
808
|
-
?
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
1074
|
+
missingEvidence: verdict === 'unverified'
|
|
1075
|
+
? `CONFIRMATION that the candidate really sends ${route} — it matched on ONE signal, ` +
|
|
1076
|
+
'and a name in common is not proof the test drives that route'
|
|
1077
|
+
: onlyMocked
|
|
1078
|
+
? 'a new test — only mocked candidates: every existing candidate mocks the system under ' +
|
|
1079
|
+
'test, so none can witness this claim (they are listed as context)'
|
|
1080
|
+
: candidates.length > 0
|
|
1081
|
+
? 'a DECLARED mapping and witnessed evidence for this change (a mapping declares intent; it supplies no test result)'
|
|
1082
|
+
: 'a declared mapping to any existing test — no candidate survived resolution',
|
|
1083
|
+
nextAction: verdict === 'unverified'
|
|
1084
|
+
? unverifiedNextAction(obligationId, candidates[0], route)
|
|
1085
|
+
: reuseNextAction(obligationId, onlyMocked ? undefined : candidates[0]),
|
|
1086
|
+
newTestNeeded: verdict,
|
|
812
1087
|
});
|
|
813
1088
|
}
|
|
814
1089
|
return suggestions.sort((a, b) => SUGGESTION_RANK[a.cause] - SUGGESTION_RANK[b.cause] ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/mapping/resolve.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/mapping/resolve.ts"],"names":[],"mappings":"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"}
|