form-tester 0.11.0 → 0.11.1
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/form-tester.js
CHANGED
|
@@ -7,7 +7,7 @@ const { spawn, execSync } = require("child_process");
|
|
|
7
7
|
const CONFIG_PATH = path.join(process.cwd(), "form-tester.config.json");
|
|
8
8
|
const OUTPUT_BASE = path.resolve(process.cwd(), "output");
|
|
9
9
|
const ISSUES_PATH = path.join(OUTPUT_BASE, "issues.jsonl");
|
|
10
|
-
const LOCAL_VERSION = "0.11.
|
|
10
|
+
const LOCAL_VERSION = "0.11.1";
|
|
11
11
|
const RECOMMENDED_PERSON = "Uromantisk Direktør";
|
|
12
12
|
|
|
13
13
|
// Recording — persisted to disk so `form-tester exec` can append across processes
|
|
@@ -936,6 +936,7 @@ function printHelp() {
|
|
|
936
936
|
[
|
|
937
937
|
"",
|
|
938
938
|
"Subcommands (run directly):",
|
|
939
|
+
" form-tester init Set up config (baseUrl, pnr, person, etc.)",
|
|
939
940
|
" form-tester install [--global] Install skill files into project or ~/.claude/skills/",
|
|
940
941
|
" form-tester test <name-or-url> --auto Non-interactive test (for AI agents)",
|
|
941
942
|
" form-tester test <name-or-url> --human Interactive test with prompts",
|
|
@@ -1736,6 +1737,51 @@ function install(targetDir, isGlobal) {
|
|
|
1736
1737
|
async function main() {
|
|
1737
1738
|
const args = process.argv.slice(2);
|
|
1738
1739
|
|
|
1740
|
+
if (args[0] === "init") {
|
|
1741
|
+
const config = loadConfig();
|
|
1742
|
+
console.log("Form Tester Setup\n");
|
|
1743
|
+
console.log("Current config:");
|
|
1744
|
+
console.log(` baseUrl: ${config.baseUrl || "(not set)"}`);
|
|
1745
|
+
console.log(` pnr: ${config.pnr || "(not set)"}`);
|
|
1746
|
+
console.log(` person: ${config.person || "(not set)"}`);
|
|
1747
|
+
console.log(` skjemaUrl: ${config.skjemaUrl || "/skjemautfyller"}`);
|
|
1748
|
+
console.log(` dokumenterUrl: ${config.dokumenterUrlTemplate || "/dokumenter?pnr={PNR}"}`);
|
|
1749
|
+
console.log("");
|
|
1750
|
+
|
|
1751
|
+
const currentRl = ensureReadline();
|
|
1752
|
+
|
|
1753
|
+
const prompt = (question, current) => new Promise((resolve) => {
|
|
1754
|
+
const suffix = current ? ` [${current}]` : "";
|
|
1755
|
+
currentRl.question(`${question}${suffix}: `, (answer) => {
|
|
1756
|
+
resolve(answer.trim() || current || "");
|
|
1757
|
+
});
|
|
1758
|
+
});
|
|
1759
|
+
|
|
1760
|
+
config.baseUrl = await prompt("Base URL (e.g. https://tjenester-a-vak-sprak.int-hn.nhn.no)", config.baseUrl);
|
|
1761
|
+
config.pnr = await prompt("PNR (fødselsnummer for test)", config.pnr);
|
|
1762
|
+
config.person = await prompt("Default person name (e.g. Uromantisk Direktør)", config.person);
|
|
1763
|
+
config.skjemaUrl = await prompt("Skjema path prefix", config.skjemaUrl || "/skjemautfyller");
|
|
1764
|
+
config.dokumenterUrlTemplate = await prompt("Dokumenter URL template", config.dokumenterUrlTemplate || "/dokumenter?pnr={PNR}");
|
|
1765
|
+
|
|
1766
|
+
saveConfig(config);
|
|
1767
|
+
currentRl.close();
|
|
1768
|
+
|
|
1769
|
+
console.log("\nConfig saved to form-tester.config.json:");
|
|
1770
|
+
console.log(` baseUrl: ${config.baseUrl}`);
|
|
1771
|
+
console.log(` pnr: ${config.pnr}`);
|
|
1772
|
+
console.log(` person: ${config.person}`);
|
|
1773
|
+
console.log(` skjemaUrl: ${config.skjemaUrl}`);
|
|
1774
|
+
console.log(` dokumenterUrl: ${config.dokumenterUrlTemplate}`);
|
|
1775
|
+
|
|
1776
|
+
// Test URL resolution
|
|
1777
|
+
console.log(`\nTest: form-tester test SLV-PasRapp-2020 --auto`);
|
|
1778
|
+
const testUrl = resolveFormUrl("SLV-PasRapp-2020", config);
|
|
1779
|
+
const withPnr = config.pnr && !extractPnrFromUrl(testUrl) ? setPnrOnUrl(testUrl, config.pnr) : testUrl;
|
|
1780
|
+
console.log(` → ${withPnr}`);
|
|
1781
|
+
|
|
1782
|
+
process.exit(0);
|
|
1783
|
+
}
|
|
1784
|
+
|
|
1739
1785
|
if (args[0] === "install") {
|
|
1740
1786
|
const isGlobal = args.includes("--global") || args.includes("-g");
|
|
1741
1787
|
const remaining = args.slice(1).filter((a) => a !== "--global" && a !== "-g");
|
|
@@ -1850,13 +1896,21 @@ async function main() {
|
|
|
1850
1896
|
console.error(" form-tester url skjemautfyller/SLV-PasRapp-2020");
|
|
1851
1897
|
console.error(" form-tester url https://example.com/skjemautfyller/FORM");
|
|
1852
1898
|
console.error(`\nConfig: baseUrl=${config.baseUrl || "(not set)"}, skjemaUrl=${config.skjemaUrl || "/skjemautfyller"}, pnr=${config.pnr || "(not set)"}`);
|
|
1899
|
+
console.error("\nRun 'form-tester init' to configure.");
|
|
1853
1900
|
process.exit(1);
|
|
1854
1901
|
}
|
|
1855
|
-
let
|
|
1856
|
-
if (config.pnr && !extractPnrFromUrl(
|
|
1857
|
-
|
|
1902
|
+
let formUrl = resolveFormUrl(input, config);
|
|
1903
|
+
if (config.pnr && !extractPnrFromUrl(formUrl)) {
|
|
1904
|
+
formUrl = setPnrOnUrl(formUrl, config.pnr);
|
|
1858
1905
|
}
|
|
1859
|
-
|
|
1906
|
+
// Also resolve dokumenter URL
|
|
1907
|
+
const tmpConfig = { ...config, lastTestUrl: formUrl };
|
|
1908
|
+
const dokUrl = resolveDokumenterUrl(tmpConfig);
|
|
1909
|
+
|
|
1910
|
+
console.log(`Form URL: ${formUrl}`);
|
|
1911
|
+
console.log(`Dokumenter URL: ${dokUrl || "(not available — set pnr)"}`);
|
|
1912
|
+
console.log(`Person: ${config.person || "(not set)"}`);
|
|
1913
|
+
console.log(`\nRun: form-tester test ${input} --auto`);
|
|
1860
1914
|
process.exit(0);
|
|
1861
1915
|
}
|
|
1862
1916
|
|
package/package.json
CHANGED