mirror of
https://github.com/ajayyy/SponsorBlockServer.git
synced 2025-12-09 13:07:02 +03:00
Add request validator rule names
This commit is contained in:
@@ -21,38 +21,43 @@ describe("Request validator", () => {
|
||||
});
|
||||
|
||||
it("simple expected match", () => {
|
||||
assert.ok(
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
userID: "asdfg",
|
||||
}),
|
||||
"Untitled rule 1",
|
||||
);
|
||||
});
|
||||
it("case insensitive match", () => {
|
||||
assert.ok(
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
userID: "asDfg",
|
||||
}),
|
||||
"Untitled rule 1",
|
||||
);
|
||||
});
|
||||
it("simple expected no match", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
userID: "125aaa",
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
it("missing field - no match", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
userAgent: "Mozilla/5.0",
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe("single case sensitive rule", () => {
|
||||
describe("single case sensitive rule with name", () => {
|
||||
const ruleset: RequestValidatorRule[] = [
|
||||
{
|
||||
ruleName: "Testing rule",
|
||||
// tuple patterns allow setting regex flags
|
||||
userID: ["^[a-z]+$", ""],
|
||||
},
|
||||
@@ -64,39 +69,44 @@ describe("Request validator", () => {
|
||||
});
|
||||
|
||||
it("simple expected match", () => {
|
||||
assert.ok(
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
userID: "asdfg",
|
||||
}),
|
||||
"Testing rule",
|
||||
);
|
||||
});
|
||||
it("different casing", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
userID: "asDfg",
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
it("extra field match", () => {
|
||||
assert.ok(
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
userID: "asdfg",
|
||||
userAgent: "Mozilla/5.0",
|
||||
}),
|
||||
"Testing rule",
|
||||
);
|
||||
});
|
||||
it("simple expected no match", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
userID: "125aaa",
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
it("missing field - no match", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
userAgent: "Mozilla/5.0",
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
});
|
||||
@@ -104,6 +114,7 @@ describe("Request validator", () => {
|
||||
describe("2-pattern rule", () => {
|
||||
const ruleset: RequestValidatorRule[] = [
|
||||
{
|
||||
ruleName: "Testing rule",
|
||||
userID: ["^[a-z]+$", ""],
|
||||
userAgent: "^Mozilla/5\\.0",
|
||||
},
|
||||
@@ -115,48 +126,54 @@ describe("Request validator", () => {
|
||||
});
|
||||
|
||||
it("simple expected match", () => {
|
||||
assert.ok(
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
userID: "asdfg",
|
||||
userAgent: "Mozilla/5.0 Chromeium/213.7",
|
||||
}),
|
||||
"Testing rule",
|
||||
);
|
||||
});
|
||||
it("only matching one pattern - fail #1", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
userID: "asDfg",
|
||||
userAgent: "Mozilla/5.0 Chromeium/213.7",
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
it("only matching one pattern - fail #2", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
userID: "asdfg",
|
||||
userAgent: "ReVanced/20.07.39",
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
it("missing one of the fields - fail #1", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
userID: "asdfg",
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
it("missing one of the fields - fail #2", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
userAgent: "Mozilla/5.0 Chromeium/213.7",
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
it("missing all fields - fail", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
videoDuration: 21.37,
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
});
|
||||
@@ -164,6 +181,7 @@ describe("Request validator", () => {
|
||||
describe("1-pattern segment rule", () => {
|
||||
const ruleset: RequestValidatorRule[] = [
|
||||
{
|
||||
ruleName: "Testing rule",
|
||||
description: "mini_bomba",
|
||||
},
|
||||
];
|
||||
@@ -174,7 +192,7 @@ describe("Request validator", () => {
|
||||
});
|
||||
|
||||
it("simple expected match", () => {
|
||||
assert.ok(
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
segments: [
|
||||
{
|
||||
@@ -185,10 +203,11 @@ describe("Request validator", () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
"Testing rule",
|
||||
);
|
||||
});
|
||||
it("match on one of multiple segments", () => {
|
||||
assert.ok(
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
segments: [
|
||||
{
|
||||
@@ -205,10 +224,11 @@ describe("Request validator", () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
"Testing rule",
|
||||
);
|
||||
});
|
||||
it("match on one of multiple segments with other missing field", () => {
|
||||
assert.ok(
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
segments: [
|
||||
{
|
||||
@@ -224,11 +244,12 @@ describe("Request validator", () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
"Testing rule",
|
||||
);
|
||||
});
|
||||
it("no match with one segment", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
segments: [
|
||||
{
|
||||
segment: ["1", "2"],
|
||||
@@ -238,11 +259,12 @@ describe("Request validator", () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
it("no match with multiple segments", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
segments: [
|
||||
{
|
||||
segment: ["1", "2"],
|
||||
@@ -258,11 +280,12 @@ describe("Request validator", () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
it("one segment missing field", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
segments: [
|
||||
{
|
||||
segment: ["1", "2"],
|
||||
@@ -271,11 +294,12 @@ describe("Request validator", () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
it("multiple segments missing field", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
segments: [
|
||||
{
|
||||
segment: ["1", "2"],
|
||||
@@ -289,20 +313,23 @@ describe("Request validator", () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
it("zero segments", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
segments: [],
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
it("missing segments", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
userAgent: "Mozilla/5.0",
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
});
|
||||
@@ -310,6 +337,7 @@ describe("Request validator", () => {
|
||||
describe("2-pattern segment rule", () => {
|
||||
const ruleset: RequestValidatorRule[] = [
|
||||
{
|
||||
ruleName: "Testing rule",
|
||||
description: "mini_bomba",
|
||||
startTime: "\\.\\d",
|
||||
},
|
||||
@@ -321,7 +349,7 @@ describe("Request validator", () => {
|
||||
});
|
||||
|
||||
it("simple expected match", () => {
|
||||
assert.ok(
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
segments: [
|
||||
{
|
||||
@@ -332,10 +360,11 @@ describe("Request validator", () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
"Testing rule",
|
||||
);
|
||||
});
|
||||
it("match on one of multiple segments", () => {
|
||||
assert.ok(
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
segments: [
|
||||
{
|
||||
@@ -352,10 +381,11 @@ describe("Request validator", () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
"Testing rule",
|
||||
);
|
||||
});
|
||||
it("match on one of multiple segments with other missing field", () => {
|
||||
assert.ok(
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
segments: [
|
||||
{
|
||||
@@ -371,11 +401,12 @@ describe("Request validator", () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
"Testing rule",
|
||||
);
|
||||
});
|
||||
it("no match with one segment #1", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
segments: [
|
||||
{
|
||||
segment: ["1", "2"],
|
||||
@@ -385,11 +416,12 @@ describe("Request validator", () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
it("no match with one segment #2", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
segments: [
|
||||
{
|
||||
segment: ["1.1", "2"],
|
||||
@@ -399,11 +431,12 @@ describe("Request validator", () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
it("no match with one segment #2", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
segments: [
|
||||
{
|
||||
segment: ["1", "2"],
|
||||
@@ -413,11 +446,12 @@ describe("Request validator", () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
it("no match with multiple segments", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
segments: [
|
||||
{
|
||||
segment: ["1", "2"],
|
||||
@@ -433,11 +467,12 @@ describe("Request validator", () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
it("no match with multiple segments with partial matches", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
segments: [
|
||||
{
|
||||
segment: ["1.1", "2"],
|
||||
@@ -453,11 +488,12 @@ describe("Request validator", () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
it("one segment missing field", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
segments: [
|
||||
{
|
||||
segment: ["1", "2"],
|
||||
@@ -466,11 +502,12 @@ describe("Request validator", () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
it("multiple segments missing field", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
segments: [
|
||||
{
|
||||
segment: ["1", "2"],
|
||||
@@ -484,20 +521,23 @@ describe("Request validator", () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
it("zero segments", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
segments: [],
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
it("missing segments", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
userAgent: "Mozilla/5.0",
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
});
|
||||
@@ -505,6 +545,7 @@ describe("Request validator", () => {
|
||||
describe("boolean rule", () => {
|
||||
const ruleset: RequestValidatorRule[] = [
|
||||
{
|
||||
ruleName: "Testing rule",
|
||||
dearrowDownvote: true,
|
||||
},
|
||||
];
|
||||
@@ -515,28 +556,31 @@ describe("Request validator", () => {
|
||||
});
|
||||
|
||||
it("simple expected match", () => {
|
||||
assert.ok(
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
dearrow: {
|
||||
downvote: true,
|
||||
},
|
||||
}),
|
||||
"Testing rule",
|
||||
);
|
||||
});
|
||||
it("simple expected no match", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
dearrow: {
|
||||
downvote: false,
|
||||
},
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
it("missing field - no match", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
userAgent: "Mozilla/5.0",
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
});
|
||||
@@ -544,6 +588,7 @@ describe("Request validator", () => {
|
||||
describe("mixed type rules", () => {
|
||||
const ruleset: RequestValidatorRule[] = [
|
||||
{
|
||||
ruleName: "Testing rule",
|
||||
titleOriginal: true,
|
||||
title: "mini_bomba",
|
||||
},
|
||||
@@ -555,7 +600,7 @@ describe("Request validator", () => {
|
||||
});
|
||||
|
||||
it("simple expected match", () => {
|
||||
assert.ok(
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
dearrow: {
|
||||
downvote: false,
|
||||
@@ -565,11 +610,12 @@ describe("Request validator", () => {
|
||||
},
|
||||
},
|
||||
}),
|
||||
"Testing rule",
|
||||
);
|
||||
});
|
||||
it("simple expected no match", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
dearrow: {
|
||||
downvote: false,
|
||||
title: {
|
||||
@@ -578,11 +624,12 @@ describe("Request validator", () => {
|
||||
},
|
||||
},
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
it("partial match #1", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
dearrow: {
|
||||
downvote: false,
|
||||
title: {
|
||||
@@ -591,11 +638,12 @@ describe("Request validator", () => {
|
||||
},
|
||||
},
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
it("partial match #2", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
dearrow: {
|
||||
downvote: false,
|
||||
title: {
|
||||
@@ -604,34 +652,38 @@ describe("Request validator", () => {
|
||||
},
|
||||
},
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
it("missing field - no match #1", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
userAgent: "Mozilla/5.0",
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
it("missing field - no match #2", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
dearrow: {
|
||||
downvote: false,
|
||||
}
|
||||
},
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
it("missing field - no match #3", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
dearrow: {
|
||||
downvote: false,
|
||||
thumbnail: {
|
||||
original: true,
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
});
|
||||
@@ -639,11 +691,12 @@ describe("Request validator", () => {
|
||||
describe("two-rule ruleset", () => {
|
||||
const ruleset: RequestValidatorRule[] = [
|
||||
{
|
||||
ruleName: "Rule one",
|
||||
titleOriginal: true,
|
||||
},
|
||||
{
|
||||
title: "mini_bomba",
|
||||
}
|
||||
},
|
||||
];
|
||||
let compiledRuleset: CompiledValidityCheck;
|
||||
|
||||
@@ -652,7 +705,7 @@ describe("Request validator", () => {
|
||||
});
|
||||
|
||||
it("matches both", () => {
|
||||
assert.ok(
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
dearrow: {
|
||||
downvote: false,
|
||||
@@ -662,23 +715,11 @@ describe("Request validator", () => {
|
||||
},
|
||||
},
|
||||
}),
|
||||
"Rule one",
|
||||
);
|
||||
});
|
||||
it("matches 1", () => {
|
||||
assert.ok(
|
||||
compiledRuleset({
|
||||
dearrow: {
|
||||
downvote: false,
|
||||
title: {
|
||||
title: "mini_bomba gaming",
|
||||
original: false,
|
||||
},
|
||||
},
|
||||
}),
|
||||
);
|
||||
});
|
||||
it("matches 2", () => {
|
||||
assert.ok(
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
dearrow: {
|
||||
downvote: false,
|
||||
@@ -688,11 +729,26 @@ describe("Request validator", () => {
|
||||
},
|
||||
},
|
||||
}),
|
||||
"Rule one",
|
||||
);
|
||||
});
|
||||
it("matches 2", () => {
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
dearrow: {
|
||||
downvote: false,
|
||||
title: {
|
||||
title: "mini_bomba gaming",
|
||||
original: false,
|
||||
},
|
||||
},
|
||||
}),
|
||||
"Untitled rule 1",
|
||||
);
|
||||
});
|
||||
it("no match", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
dearrow: {
|
||||
downvote: false,
|
||||
title: {
|
||||
@@ -701,34 +757,38 @@ describe("Request validator", () => {
|
||||
},
|
||||
},
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
it("missing both fields #1", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
userAgent: "Mozilla/5.0",
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
it("missing both fields #2", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
dearrow: {
|
||||
downvote: false,
|
||||
}
|
||||
},
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
it("missing both fields #3", () => {
|
||||
assert.ok(
|
||||
!compiledRuleset({
|
||||
assert.equal(
|
||||
compiledRuleset({
|
||||
dearrow: {
|
||||
downvote: false,
|
||||
thumbnail: {
|
||||
original: true,
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
}),
|
||||
null,
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user