Files
air-watcher/test/pollingConfig.test.js
2026-03-05 11:00:45 +09:00

29 lines
1.3 KiB
JavaScript

"use strict";
const test = require("node:test");
const assert = require("node:assert/strict");
const {
MIN_CRAWL_INTERVAL_MS,
MIN_CRAWL_INTERVAL_SEC,
normalizeCrawlIntervalMs,
normalizeCrawlIntervalSec,
} = require("../src/pollingConfig");
test("normalizeCrawlIntervalSec enforces minimum 1 hour", () => {
assert.equal(normalizeCrawlIntervalSec(undefined), MIN_CRAWL_INTERVAL_SEC);
assert.equal(normalizeCrawlIntervalSec(3600), 3600);
assert.equal(normalizeCrawlIntervalSec(7200), 7200);
assert.throws(() => normalizeCrawlIntervalSec(60), /3600 이상이어야 합니다/);
assert.throws(() => normalizeCrawlIntervalSec(3599), /3600 이상이어야 합니다/);
assert.throws(() => normalizeCrawlIntervalSec("abc"), /정수여야 합니다/);
});
test("normalizeCrawlIntervalMs enforces minimum 1 hour", () => {
assert.equal(normalizeCrawlIntervalMs(undefined), MIN_CRAWL_INTERVAL_MS);
assert.equal(normalizeCrawlIntervalMs(3600000), 3600000);
assert.equal(normalizeCrawlIntervalMs(7200000), 7200000);
assert.throws(() => normalizeCrawlIntervalMs(60000), /3600000 이상이어야 합니다/);
assert.throws(() => normalizeCrawlIntervalMs(3599999), /3600000 이상이어야 합니다/);
assert.throws(() => normalizeCrawlIntervalMs("bad"), /정수여야 합니다/);
});