38 lines
1.4 KiB
JavaScript
38 lines
1.4 KiB
JavaScript
|
|
"use strict";
|
||
|
|
|
||
|
|
const test = require("node:test");
|
||
|
|
const assert = require("node:assert/strict");
|
||
|
|
|
||
|
|
const {
|
||
|
|
VAULT_HOSTS_VS_NOTES_GUIDANCE,
|
||
|
|
VAULT_SCRIPTS_GUIDANCE,
|
||
|
|
appendVaultAgentGuidance,
|
||
|
|
} = require("./vaultAgentGuidance.cjs");
|
||
|
|
|
||
|
|
test("VAULT_HOSTS_VS_NOTES_GUIDANCE forbids note fallback for host creation", () => {
|
||
|
|
assert.match(VAULT_HOSTS_VS_NOTES_GUIDANCE, /vault_hosts_create/i);
|
||
|
|
assert.match(VAULT_HOSTS_VS_NOTES_GUIDANCE, /NOT vault_notes_create/i);
|
||
|
|
assert.match(VAULT_HOSTS_VS_NOTES_GUIDANCE, /do not silently create a Vault note/i);
|
||
|
|
});
|
||
|
|
|
||
|
|
test("VAULT_HOSTS_VS_NOTES_GUIDANCE routes unknown attached host files through AI extraction", () => {
|
||
|
|
assert.match(VAULT_HOSTS_VS_NOTES_GUIDANCE, /attached/i);
|
||
|
|
assert.match(VAULT_HOSTS_VS_NOTES_GUIDANCE, /unknown/i);
|
||
|
|
assert.match(VAULT_HOSTS_VS_NOTES_GUIDANCE, /extract/i);
|
||
|
|
assert.match(VAULT_HOSTS_VS_NOTES_GUIDANCE, /vault_hosts_create/i);
|
||
|
|
});
|
||
|
|
|
||
|
|
test("appendVaultAgentGuidance appends guidance once", () => {
|
||
|
|
const once = appendVaultAgentGuidance("Netcatty terminal manager.");
|
||
|
|
assert.match(once, /Netcatty terminal manager/);
|
||
|
|
assert.match(once, /Vault → Hosts vs Vault → Notes/);
|
||
|
|
|
||
|
|
const twice = appendVaultAgentGuidance(once);
|
||
|
|
assert.equal(twice, once);
|
||
|
|
});
|
||
|
|
|
||
|
|
test("VAULT_SCRIPTS_GUIDANCE prefers explicit wait APIs", () => {
|
||
|
|
assert.match(VAULT_SCRIPTS_GUIDANCE, /waitForText\/waitForRegex/);
|
||
|
|
assert.doesNotMatch(VAULT_SCRIPTS_GUIDANCE, /sendLine,\s*waitFor,\s*dialogs/);
|
||
|
|
});
|