describe("pingback receive validation tests", () => { const { validate } = require('../../src/pingback/receive') test("not valid if malformed XML as body", () => { const result = validate("ola pola") expect(result).toBe(false) }) test("not valid if methodName is not pingback.ping", () => { const result = validate(` ka.tsjing https://cool.site https://brainbaking.com/post/2021/03/cool-ness `) expect(result).toBe(false) }) test("not valid if less than two parameters", () => { const result = validate(` pingback.ping https://brainbaking.com/post/2021/03/cool-ness `) expect(result).toBe(false) }) test("not valid if more than two parameters", () => { const xml = ` pingback.ping https://cool.site https://brainbaking.com/post/2021/03/cool-ness https://brainbaking.com/post/2021/03/cool-ness ` expect(validate(xml)).toBe(false) }) test("not valid if target is not in trusted domains from config", () => { const result = validate(` pingback.ping https://cool.site https://flashballz.com/post/2021/03/cool-ness `) expect(result).toBe(false) }) test("not valid if target is not http(s)", () => { const result = validate(` pingback.ping https://cool.site gemini://brainbaking.com/post/2021/03/cool-ness `) expect(result).toBe(false) }) test("not valid if source is not http(s)", () => { const result = validate(` pingback.ping gemini://cool.site https://brainbaking.com/post/2021/03/cool-ness `) expect(result).toBe(false) }) test("is valid if pingback.ping and two http(s) parameters of which target is trusted", () => { const result = validate(` pingback.ping https://cool.site https://brainbaking.com/post/2021/03/cool-ness `) expect(result).toBe(true) }) })