linkedout/test/location-utils.test.js
tanyar09 8de65bc04c Add initial project structure for Job Market Intelligence platform
- Created core modules: `ai-analyzer`, `core-parser`, and `job-search-parser`.
- Implemented LinkedIn and job search parsers with integrated AI analysis.
- Added CLI tools for AI analysis and job parsing.
- Included comprehensive README files for each module detailing usage and features.
- Established a `.gitignore` file to exclude unnecessary files.
- Introduced sample data for testing and demonstration purposes.
- Set up package.json files for dependency management across modules.
- Implemented logging and error handling utilities for better debugging and user feedback.
2025-12-12 14:23:01 -05:00

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");