57 lines
2.2 KiB
JavaScript
57 lines
2.2 KiB
JavaScript
// test/employeeMasterCheck.test.js
|
|
const { test } = require("node:test");
|
|
const assert = require("node:assert");
|
|
const {
|
|
checkEmailConsistency,
|
|
resolveKanaFromMaster,
|
|
needsKanaFill,
|
|
} = require("../src/lib/employeeMasterCheck");
|
|
|
|
test("checkEmailConsistency: PLメールアドレス(Class036)と一致すればconsistent:true", () => {
|
|
const result = checkEmailConsistency("taro.yamada@next-hd.co.jp", {
|
|
Class036: "taro.yamada@next-hd.co.jp",
|
|
ClassB: "taro.yamada@example.com",
|
|
});
|
|
assert.deepStrictEqual(result, { consistent: true, masterEmail: "taro.yamada@next-hd.co.jp" });
|
|
});
|
|
|
|
test("checkEmailConsistency: Class036が無ければClassBにフォールバックする", () => {
|
|
const result = checkEmailConsistency("taro.yamada@example.com", {
|
|
ClassB: "taro.yamada@example.com",
|
|
});
|
|
assert.deepStrictEqual(result, { consistent: true, masterEmail: "taro.yamada@example.com" });
|
|
});
|
|
|
|
test("checkEmailConsistency: 不一致ならconsistent:false", () => {
|
|
const result = checkEmailConsistency("taro.yamada@next-hd.co.jp", {
|
|
Class036: "different@next-hd.co.jp",
|
|
});
|
|
assert.deepStrictEqual(result, { consistent: false, masterEmail: "different@next-hd.co.jp" });
|
|
});
|
|
|
|
test("checkEmailConsistency: マスタ側にメールが無ければmasterEmail:null・consistent:false", () => {
|
|
const result = checkEmailConsistency("taro.yamada@next-hd.co.jp", {});
|
|
assert.deepStrictEqual(result, { consistent: false, masterEmail: null });
|
|
});
|
|
|
|
test("resolveKanaFromMaster: 姓カナ+名カナを空白区切りで結合する", () => {
|
|
assert.strictEqual(
|
|
resolveKanaFromMaster({ Class003: "ヤマダ", Class004: "タロウ" }),
|
|
"ヤマダ タロウ"
|
|
);
|
|
});
|
|
|
|
test("resolveKanaFromMaster: 片方欠けていても結合できる", () => {
|
|
assert.strictEqual(resolveKanaFromMaster({ Class003: "ヤマダ" }), "ヤマダ");
|
|
});
|
|
|
|
test("needsKanaFill: 空文字・未定義はtrue", () => {
|
|
assert.strictEqual(needsKanaFill(""), true);
|
|
assert.strictEqual(needsKanaFill(undefined), true);
|
|
assert.strictEqual(needsKanaFill(null), true);
|
|
});
|
|
|
|
test("needsKanaFill: 値が入っていればfalse", () => {
|
|
assert.strictEqual(needsKanaFill("ヤマダ タロウ"), false);
|
|
});
|