2023-05-30 13:48:38 +00:00
|
|
|
import { RawReqFilter } from "System";
|
2023-05-19 14:15:13 +00:00
|
|
|
import { describe, expect } from "@jest/globals";
|
2023-06-01 08:54:25 +00:00
|
|
|
import { diffFilters, expandFilter } from "./RequestSplitter";
|
2023-03-28 14:34:01 +00:00
|
|
|
|
|
|
|
describe("RequestSplitter", () => {
|
|
|
|
test("single filter add value", () => {
|
|
|
|
const a: Array<RawReqFilter> = [{ kinds: [0], authors: ["a"] }];
|
|
|
|
const b: Array<RawReqFilter> = [{ kinds: [0], authors: ["a", "b"] }];
|
|
|
|
const diff = diffFilters(a, b);
|
|
|
|
expect(diff).toEqual({ filters: [{ kinds: [0], authors: ["b"] }], changed: true });
|
|
|
|
});
|
|
|
|
test("single filter remove value", () => {
|
|
|
|
const a: Array<RawReqFilter> = [{ kinds: [0], authors: ["a"] }];
|
|
|
|
const b: Array<RawReqFilter> = [{ kinds: [0], authors: ["b"] }];
|
|
|
|
const diff = diffFilters(a, b);
|
|
|
|
expect(diff).toEqual({ filters: [{ kinds: [0], authors: ["b"] }], changed: true });
|
|
|
|
});
|
|
|
|
test("single filter change critical key", () => {
|
|
|
|
const a: Array<RawReqFilter> = [{ kinds: [0], authors: ["a"], since: 100 }];
|
|
|
|
const b: Array<RawReqFilter> = [{ kinds: [0], authors: ["a", "b"], since: 101 }];
|
|
|
|
const diff = diffFilters(a, b);
|
|
|
|
expect(diff).toEqual({ filters: [{ kinds: [0], authors: ["a", "b"], since: 101 }], changed: true });
|
|
|
|
});
|
|
|
|
test("multiple filter add value", () => {
|
|
|
|
const a: Array<RawReqFilter> = [
|
|
|
|
{ kinds: [0], authors: ["a"] },
|
|
|
|
{ kinds: [69], authors: ["a"] },
|
|
|
|
];
|
|
|
|
const b: Array<RawReqFilter> = [
|
|
|
|
{ kinds: [0], authors: ["a", "b"] },
|
|
|
|
{ kinds: [69], authors: ["a", "c"] },
|
|
|
|
];
|
|
|
|
const diff = diffFilters(a, b);
|
|
|
|
expect(diff).toEqual({
|
|
|
|
filters: [
|
|
|
|
{ kinds: [0], authors: ["b"] },
|
|
|
|
{ kinds: [69], authors: ["c"] },
|
|
|
|
],
|
|
|
|
changed: true,
|
|
|
|
});
|
|
|
|
});
|
|
|
|
test("multiple filter remove value", () => {
|
|
|
|
const a: Array<RawReqFilter> = [
|
|
|
|
{ kinds: [0], authors: ["a"] },
|
|
|
|
{ kinds: [69], authors: ["a"] },
|
|
|
|
];
|
|
|
|
const b: Array<RawReqFilter> = [
|
|
|
|
{ kinds: [0], authors: ["b"] },
|
|
|
|
{ kinds: [69], authors: ["c"] },
|
|
|
|
];
|
|
|
|
const diff = diffFilters(a, b);
|
|
|
|
expect(diff).toEqual({
|
|
|
|
filters: [
|
|
|
|
{ kinds: [0], authors: ["b"] },
|
|
|
|
{ kinds: [69], authors: ["c"] },
|
|
|
|
],
|
|
|
|
changed: true,
|
|
|
|
});
|
|
|
|
});
|
|
|
|
test("add filter", () => {
|
|
|
|
const a: Array<RawReqFilter> = [{ kinds: [0], authors: ["a"] }];
|
|
|
|
const b: Array<RawReqFilter> = [
|
|
|
|
{ kinds: [0], authors: ["a"] },
|
|
|
|
{ kinds: [69], authors: ["c"] },
|
|
|
|
];
|
|
|
|
const diff = diffFilters(a, b);
|
|
|
|
expect(diff).toEqual({
|
|
|
|
filters: [
|
|
|
|
{ kinds: [0], authors: ["a"] },
|
|
|
|
{ kinds: [69], authors: ["c"] },
|
|
|
|
],
|
|
|
|
changed: true,
|
|
|
|
});
|
|
|
|
});
|
2023-06-01 08:54:25 +00:00
|
|
|
test("expand filter", () => {
|
|
|
|
const a = {
|
|
|
|
authors: ["a", "b", "c"],
|
|
|
|
kinds: [1, 2, 3],
|
|
|
|
ids: ["x", "y"],
|
|
|
|
since: 99,
|
|
|
|
limit: 10,
|
|
|
|
};
|
|
|
|
expect(expandFilter(a)).toEqual([
|
|
|
|
{ authors: ["a"], kinds: [1], ids: ["x"], since: 99, limit: 10 },
|
|
|
|
{ authors: ["a"], kinds: [1], ids: ["y"], since: 99, limit: 10 },
|
|
|
|
{ authors: ["a"], kinds: [2], ids: ["x"], since: 99, limit: 10 },
|
|
|
|
{ authors: ["a"], kinds: [2], ids: ["y"], since: 99, limit: 10 },
|
|
|
|
{ authors: ["a"], kinds: [3], ids: ["x"], since: 99, limit: 10 },
|
|
|
|
{ authors: ["a"], kinds: [3], ids: ["y"], since: 99, limit: 10 },
|
|
|
|
{ authors: ["b"], kinds: [1], ids: ["x"], since: 99, limit: 10 },
|
|
|
|
{ authors: ["b"], kinds: [1], ids: ["y"], since: 99, limit: 10 },
|
|
|
|
{ authors: ["b"], kinds: [2], ids: ["x"], since: 99, limit: 10 },
|
|
|
|
{ authors: ["b"], kinds: [2], ids: ["y"], since: 99, limit: 10 },
|
|
|
|
{ authors: ["b"], kinds: [3], ids: ["x"], since: 99, limit: 10 },
|
|
|
|
{ authors: ["b"], kinds: [3], ids: ["y"], since: 99, limit: 10 },
|
|
|
|
{ authors: ["c"], kinds: [1], ids: ["x"], since: 99, limit: 10 },
|
|
|
|
{ authors: ["c"], kinds: [1], ids: ["y"], since: 99, limit: 10 },
|
|
|
|
{ authors: ["c"], kinds: [2], ids: ["x"], since: 99, limit: 10 },
|
|
|
|
{ authors: ["c"], kinds: [2], ids: ["y"], since: 99, limit: 10 },
|
|
|
|
{ authors: ["c"], kinds: [3], ids: ["x"], since: 99, limit: 10 },
|
|
|
|
{ authors: ["c"], kinds: [3], ids: ["y"], since: 99, limit: 10 },
|
|
|
|
]);
|
|
|
|
});
|
2023-03-28 14:34:01 +00:00
|
|
|
});
|