mirror of
https://github.com/louislam/uptime-kuma.git
synced 2025-08-03 03:56:18 -04:00
Monitor Conditions (#5048)
This commit is contained in:
parent
032ac161f7
commit
36f8be040d
21 changed files with 1526 additions and 35 deletions
46
test/backend-test/monitor-conditions/test-evaluator.js
Normal file
46
test/backend-test/monitor-conditions/test-evaluator.js
Normal file
|
@ -0,0 +1,46 @@
|
|||
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" }));
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue