eharris128_Obsidian-LLM-Plugin/scripts
Evan Harris edd21015c2 Add local E2E suite driving real sandboxed Obsidian (wdio-obsidian-service)
npm run test:e2e builds the plugin, type-checks the specs, stages a clean
copy into test/plugin-dist/, and runs 13 Mocha specs against a real,
sandboxed Obsidian instance (downloaded to .obsidian-cache/ on first run;
~6s wall-clock after that). No API keys or network providers needed.

Coverage: plugin load + command registration + built-in skill seeding,
widget open/focus-or-open/new-chat-always-fresh/per-tab input isolation,
slash menu open/Escape/filtering, chat modal, chats panel, chat details
panel, and the header settings toggle.

Design notes (details in test/README.md):
- The service copies data.json from the plugin dir into test vaults, so
  plugins: ["."] would leak the developer's real API keys. The staging
  script writes a deterministic test data.json instead (rootVaultFolder
  "AI" so built-in skills seed; nothing else).
- Specs read the plugin id from the staged manifest at runtime rather
  than hardcoding it.
- Specs live under test/ with their own tsconfig (root tsconfig now
  excludes test/); OBSIDIAN_APP_VERSION / OBSIDIAN_INSTALLER_VERSION pin
  the Obsidian version under test.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 14:16:18 -05:00
..
create_tag.sh Add tag increment script for ease of mobile testing 2024-11-12 22:06:03 -05:00
stage-plugin.mjs Add local E2E suite driving real sandboxed Obsidian (wdio-obsidian-service) 2026-06-06 14:16:18 -05:00
tag_version.sh Add helper script 2024-11-12 22:40:27 -05:00