44 lines
1.4 KiB
JavaScript
44 lines
1.4 KiB
JavaScript
const assert = require("node:assert/strict");
|
||
const availability = require("../static/availability.js");
|
||
|
||
const walleye = {
|
||
id: "fish-walleye",
|
||
meta: "River/Lake · 12pm–2am · rain",
|
||
seasons: ["fall"]
|
||
};
|
||
const fallWindow = availability.classify(walleye, {
|
||
checked: false,
|
||
chooseGroupComplete: false,
|
||
season: "fall"
|
||
});
|
||
assert.equal(fallWindow.needed, true);
|
||
assert.equal(fallWindow.availableNow, true);
|
||
assert.equal(fallWindow.seasonExclusive, true);
|
||
assert.equal(fallWindow.weather, "Rain");
|
||
assert.equal(availability.matchesFilter(fallWindow, "now"), true);
|
||
assert.equal(availability.matchesFilter(fallWindow, "exclusive"), true);
|
||
assert.equal(availability.matchesFilter(fallWindow, "weather"), true);
|
||
|
||
const springWalleye = availability.classify(walleye, {
|
||
checked: false,
|
||
chooseGroupComplete: false,
|
||
season: "spring"
|
||
});
|
||
assert.equal(springWalleye.availableNow, false);
|
||
assert.equal(availability.matchesFilter(springWalleye, "now"), false);
|
||
assert.equal(availability.matchesFilter(springWalleye, "weather"), false);
|
||
|
||
const optionalChoice = availability.classify({
|
||
id: "crab-clam",
|
||
meta: "Ocean crab pot",
|
||
seasons: []
|
||
}, {
|
||
checked: false,
|
||
chooseGroupComplete: true,
|
||
season: "spring"
|
||
});
|
||
assert.equal(optionalChoice.needed, false);
|
||
assert.equal(availability.matchesFilter(optionalChoice, "open"), false);
|
||
assert.equal(availability.matchesFilter(optionalChoice, "now"), false);
|
||
|
||
console.log("availability tests passed");
|