mirror of
https://github.com/louislam/uptime-kuma.git
synced 2024-11-14 17:44:32 -08:00
36f8be040d
Some checks are pending
Auto Test / auto-test (18, ARM64) (push) Blocked by required conditions
Auto Test / auto-test (18, macos-latest) (push) Blocked by required conditions
Auto Test / auto-test (18, ubuntu-latest) (push) Blocked by required conditions
Auto Test / auto-test (18, windows-latest) (push) Blocked by required conditions
Auto Test / auto-test (20.5, ARM64) (push) Blocked by required conditions
Auto Test / auto-test (20.5, macos-latest) (push) Blocked by required conditions
Auto Test / auto-test (20.5, ubuntu-latest) (push) Blocked by required conditions
Auto Test / auto-test (20.5, windows-latest) (push) Blocked by required conditions
Auto Test / armv7-simple-test (18, ARMv7) (push) Blocked by required conditions
Auto Test / armv7-simple-test (20, ARMv7) (push) Blocked by required conditions
Auto Test / check-linters (push) Waiting to run
Auto Test / e2e-test (push) Blocked by required conditions
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (javascript-typescript) (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
json-yaml-validate / json-yaml-validate (push) Waiting to run
47 lines
2.6 KiB
JavaScript
47 lines
2.6 KiB
JavaScript
const test = require("node:test");
|
|
const assert = require("node:assert");
|
|
const { ConditionExpressionGroup, ConditionExpression, LOGICAL } = require("../../../server/monitor-conditions/expression.js");
|
|
const { evaluateExpressionGroup, evaluateExpression } = require("../../../server/monitor-conditions/evaluator.js");
|
|
|
|
test("Test evaluateExpression", async (t) => {
|
|
const expr = new ConditionExpression("record", "contains", "mx1.example.com");
|
|
assert.strictEqual(true, evaluateExpression(expr, { record: "mx1.example.com" }));
|
|
assert.strictEqual(false, evaluateExpression(expr, { record: "mx2.example.com" }));
|
|
});
|
|
|
|
test("Test evaluateExpressionGroup with logical AND", async (t) => {
|
|
const group = new ConditionExpressionGroup([
|
|
new ConditionExpression("record", "contains", "mx1."),
|
|
new ConditionExpression("record", "contains", "example.com", LOGICAL.AND),
|
|
]);
|
|
assert.strictEqual(true, evaluateExpressionGroup(group, { record: "mx1.example.com" }));
|
|
assert.strictEqual(false, evaluateExpressionGroup(group, { record: "mx1." }));
|
|
assert.strictEqual(false, evaluateExpressionGroup(group, { record: "example.com" }));
|
|
});
|
|
|
|
test("Test evaluateExpressionGroup with logical OR", async (t) => {
|
|
const group = new ConditionExpressionGroup([
|
|
new ConditionExpression("record", "contains", "example.com"),
|
|
new ConditionExpression("record", "contains", "example.org", LOGICAL.OR),
|
|
]);
|
|
assert.strictEqual(true, evaluateExpressionGroup(group, { record: "example.com" }));
|
|
assert.strictEqual(true, evaluateExpressionGroup(group, { record: "example.org" }));
|
|
assert.strictEqual(false, evaluateExpressionGroup(group, { record: "example.net" }));
|
|
});
|
|
|
|
test("Test evaluateExpressionGroup with nested group", async (t) => {
|
|
const group = new ConditionExpressionGroup([
|
|
new ConditionExpression("record", "contains", "mx1."),
|
|
new ConditionExpressionGroup([
|
|
new ConditionExpression("record", "contains", "example.com"),
|
|
new ConditionExpression("record", "contains", "example.org", LOGICAL.OR),
|
|
]),
|
|
]);
|
|
assert.strictEqual(false, evaluateExpressionGroup(group, { record: "mx1." }));
|
|
assert.strictEqual(true, evaluateExpressionGroup(group, { record: "mx1.example.com" }));
|
|
assert.strictEqual(true, evaluateExpressionGroup(group, { record: "mx1.example.org" }));
|
|
assert.strictEqual(false, evaluateExpressionGroup(group, { record: "example.com" }));
|
|
assert.strictEqual(false, evaluateExpressionGroup(group, { record: "example.org" }));
|
|
assert.strictEqual(false, evaluateExpressionGroup(group, { record: "mx1.example.net" }));
|
|
});
|