linkedout/test/location-utils.test.js

66 lines
2.2 KiB
JavaScript

const assert = require("assert");
const {
parseLocationFilters,
validateLocationAgainstFilters,
} = require("../ai-analyzer");
console.log("Location Utils tests");
// Test parseLocationFilters
const filters = parseLocationFilters("Ontario,Manitoba");
assert.deepStrictEqual(
filters,
["ontario", "manitoba"],
"parseLocationFilters failed"
);
console.log("PASS: parseLocationFilters works");
// Test validateLocationAgainstFilters positive
let result = validateLocationAgainstFilters("Toronto, Ontario, Canada", [
"ontario",
]);
assert(result.isValid, "Ontario should match Toronto, Ontario, Canada");
result = validateLocationAgainstFilters("Toronto, Ontario, Canada", [
"toronto",
]);
assert(result.isValid, "Toronto should match Toronto, Ontario, Canada");
// Negative test
result = validateLocationAgainstFilters("Vancouver, BC, Canada", ["ontario"]);
assert(!result.isValid, "Vancouver should not match Ontario");
// More positive cases
result = validateLocationAgainstFilters("Winnipeg, Manitoba, Canada", [
"manitoba",
]);
assert(result.isValid, "Manitoba should match Winnipeg, Manitoba, Canada");
result = validateLocationAgainstFilters("Calgary, Alberta, Canada", [
"alberta",
]);
assert(result.isValid, "Alberta should match Calgary, Alberta, Canada");
result = validateLocationAgainstFilters("Vancouver, BC, Canada", ["bc"]);
assert(result.isValid, "BC should match Vancouver, BC, Canada");
result = validateLocationAgainstFilters("Montreal, Quebec, Canada", ["quebec"]);
assert(result.isValid, "Quebec should match Montreal, Quebec, Canada");
result = validateLocationAgainstFilters("Halifax, NS, Canada", [
"nova scotia",
"ns",
]);
assert(result.isValid, "NS/Nova Scotia should match Halifax, NS, Canada");
// Negative edge cases
result = validateLocationAgainstFilters("Seattle, Washington, USA", [
"ontario",
"manitoba",
]);
assert(!result.isValid, "Seattle should not match Ontario or Manitoba");
result = validateLocationAgainstFilters("Ottawa, Ontario, Canada", ["quebec"]);
assert(!result.isValid, "Ottawa, Ontario should not match Quebec");
console.log("PASS: validateLocationAgainstFilters positive/negative cases");