30 lines
1.7 KiB
JavaScript
30 lines
1.7 KiB
JavaScript
const assert = require("node:assert/strict");
|
|
const fs = require("node:fs");
|
|
const vm = require("node:vm");
|
|
const path = require("node:path");
|
|
|
|
const source = fs.readFileSync(path.join(__dirname,
|
|
"../../quickshell/.config/quickshell/labfy-sway/applications/ApplicationsModel.js"), "utf8")
|
|
.replace(/^\.pragma library\s*\n/, "");
|
|
const context = vm.createContext({});
|
|
vm.runInContext(source, context);
|
|
const entries = context.catalog([
|
|
{ id: "firefox.desktop", name: "Firefox", genericName: "Navigateur Web", keywords: ["Internet"], categories: ["Network"], icon: "firefox" },
|
|
{ id: "nvim.desktop", name: "Éditeur", genericName: "Texte", keywords: ["Code"], categories: ["Development"] },
|
|
{ id: "hidden.desktop", name: "Hidden", noDisplay: true, categories: ["Game"] },
|
|
{ id: "firefox.desktop", name: "Duplicate", categories: ["Utility"] },
|
|
{ id: "other.desktop", name: "Mystère", categories: [] }
|
|
]);
|
|
assert.equal(entries.length, 3);
|
|
assert.equal(context.catalog([{ id: "fixture", name: "Fixture" }])[0].id,
|
|
"fixture.desktop");
|
|
assert.equal(context.categories(entries).length, 3);
|
|
assert.equal(context.results(entries, "Développement", "", []).length, 1);
|
|
assert.equal(context.results(entries, "Développement", "navigateur", []).length, 1);
|
|
assert.equal(context.results(entries, "Toutes", "editeur", []).length, 1);
|
|
assert.equal(context.results(entries, "Toutes", "absent", []).length, 0);
|
|
assert.equal(context.results(entries, "Favoris", "", ["removed.desktop", "firefox.desktop"])[0].id,
|
|
"firefox.desktop");
|
|
assert.equal(context.initialFavorites([{ id: "kitty.desktop", name: "kitty" }])[0],
|
|
"kitty.desktop");
|
|
console.log("ApplicationsModel: PASS");
|