66 lines
2.2 KiB
JavaScript
66 lines
2.2 KiB
JavaScript
const assert = require("assert");
|
|
const {
|
|
parseLocationFilters,
|
|
validateLocationAgainstFilters,
|
|
} = require("../location-utils");
|
|
|
|
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");
|