Deferred B2 from #139 / MT kanban task ecddd1a7.
Background
#139 B1 shipped entry-point smoke coverage for Hover + Implementation in no-solution mode (Tests 1 + 3) along with the Gap A fix at MemberLocatorService.resolveFilePath. Test 4 (DocumentLinkProvider.provideDocumentLinks) was deferred because the DocumentLink path requires the FileRelationshipGraph (FRG) to be built — and FRG no-solution-mode build is tracked separately under d7e34cc5. Pick up when FRG cluster lands.
Test shape
DocumentLinkProvider.provideDocumentLinks on source MyProg.clw containing INCLUDE('MyClass.inc') with MyClass.inc in libsrc, in no-solution mode (SolutionManager.instance = null, serverSettings.libsrcPaths pointed at the fixture's libsrc dir).
Bidirectional-pin shape per feedback_bidirectional_pin_assertion:
- Positive: at least one DocumentLink returned; link target URI inside the libsrc dir; link target basename matches
MyClass.inc.
- Negative regression sentinel: source with no INCLUDEs returns empty link list (provider doesn't fabricate links).
Substrate
Reuses NoSolutionFixture + cursorPositionOf already landed in #139 Gap A close-out.
FRG seeding is the new substrate requirement — DocumentLinkProvider.provideDocumentLinks bails immediately if frg.isBuilt is false (line 26). A seedFrgForFixture(spec) helper or equivalent is the substrate add. Flagged as "FRG seeding" in #139 substrate-gap hypothesis.
Estimate
~30-45min test + 1-2hr FRG seeding substrate. Honest 2-3hr.
Cross-references
Cross-references (related #139 work)
Deferred B2 from #139 / MT kanban task
ecddd1a7.Background
#139 B1 shipped entry-point smoke coverage for Hover + Implementation in no-solution mode (Tests 1 + 3) along with the Gap A fix at
MemberLocatorService.resolveFilePath. Test 4 (DocumentLinkProvider.provideDocumentLinks) was deferred because the DocumentLink path requires the FileRelationshipGraph (FRG) to be built — and FRG no-solution-mode build is tracked separately underd7e34cc5. Pick up when FRG cluster lands.Test shape
DocumentLinkProvider.provideDocumentLinkson sourceMyProg.clwcontainingINCLUDE('MyClass.inc')withMyClass.incin libsrc, in no-solution mode (SolutionManager.instance = null,serverSettings.libsrcPathspointed at the fixture's libsrc dir).Bidirectional-pin shape per
feedback_bidirectional_pin_assertion:MyClass.inc.Substrate
Reuses
NoSolutionFixture+cursorPositionOfalready landed in #139 Gap A close-out.FRG seeding is the new substrate requirement —
DocumentLinkProvider.provideDocumentLinksbails immediately iffrg.isBuiltis false (line 26). AseedFrgForFixture(spec)helper or equivalent is the substrate add. Flagged as "FRG seeding" in #139 substrate-gap hypothesis.Estimate
~30-45min test + 1-2hr FRG seeding substrate. Honest 2-3hr.
Cross-references
Cross-references (related #139 work)