32 lines
1.4 KiB
JavaScript
32 lines
1.4 KiB
JavaScript
const test = require("node:test");
|
|
const assert = require("node:assert/strict");
|
|
const path = require("path");
|
|
const os = require("os");
|
|
const fs = require("fs");
|
|
const { parseChoicesText, resolveSiteDir } = require("./generate-process-flowchart");
|
|
|
|
test("parseChoicesText: 値,ラベル,短縮ラベル,色 形式を 値→ラベル のMapへ変換する", () => {
|
|
const input = "100,新規,新規,new-status-white\n450,依頼者質疑中,質疑中,new-status-yellow";
|
|
const result = parseChoicesText(input);
|
|
assert.equal(result.get("100"), "新規");
|
|
assert.equal(result.get("450"), "依頼者質疑中");
|
|
assert.equal(result.size, 2);
|
|
});
|
|
|
|
test("parseChoicesText: undefinedやから文字列は空Mapを返す", () => {
|
|
assert.equal(parseChoicesText(undefined).size, 0);
|
|
assert.equal(parseChoicesText("").size, 0);
|
|
});
|
|
|
|
test("parseChoicesText: ラベル省略時は値をラベルとして使う", () => {
|
|
const result = parseChoicesText("999");
|
|
assert.equal(result.get("999"), "999");
|
|
});
|
|
|
|
test("resolveSiteDir: site-{id}_{name}形式のフォルダを前方一致で解決する", () => {
|
|
const tmpBase = fs.mkdtempSync(path.join(os.tmpdir(), "gpf-test-"));
|
|
fs.mkdirSync(path.join(tmpBase, "configs", "site-999_テストサイト"), { recursive: true });
|
|
const result = resolveSiteDir(tmpBase, "site-999");
|
|
assert.equal(result, path.join(tmpBase, "configs", "site-999_テストサイト"));
|
|
});
|