Ship a curated demo-vault/ for Backlink Full Path, bootstrapped by the
release-injected obsidian-dev-utils demo-vault-helper. Three same-named Meeting
notes in different folders link to a shared note so the Backlinks pane shows each
one's full path; a Settings note documents every option. Add a static
registerDemoVaultCoverageSuite no-app test, the project dprint.json (excludes
demo-vault), and the README demo vault access section.
Add OpenDemoVaultCommandHandler (87.0.3 pluginId/pluginVersion signature) so the
plugin exposes the "Open demo vault" command; assert it is registered in the
plugin test.
Bump across the 86 -> 87 major with no source fallout; unlocks the S2 demo-vault
mechanism (release-injected helper, coverage suite, demo-vault-safe lint runner).
Bump obsidian-dev-utils ^75.0.0 -> ^76.1.0 and obsidian-integration-testing ^4.3.0 ->
^4.4.0. No new lint/type errors surfaced from the 76.x breaking changes.
Rewrite backlink-full-path-component.test.ts to drive the real
LayoutReadyComponent lifecycle and add real-MonkeyAroundComponent tests
for the extracted patch components, replacing the stale, mock-based suite
left behind by the monkey-around refactor. Restores 100% coverage.
Lint, format, and spellcheck no longer fail: obsidian-dev-utils is now
installed from npm (^72.0.0) rather than via the `file:` protocol, so the
transitive tool dependencies are hoisted correctly. All three checks pass.
The "new template" refactor moved the backlink logic out of `Plugin` into
`BacklinkFullPathComponent`, but the tests still targeted the old `Plugin` API,
leaving 46 failing tests and broken coverage. Realign the suite with the
component architecture and the canonical template test layout.
- rewrite plugin.test.ts to verify onloadImpl wiring (mocked children)
- add backlink-full-path-component.test.ts covering the moved backlink logic
- add plugin-settings-component.test.ts
- rewrite plugin-settings-tab.test.ts using the bind-spy pattern
Coverage: 100% statements/branches/functions/lines.