diff options
Diffstat (limited to 'desktop/companion/test_lines.js')
| -rw-r--r-- | desktop/companion/test_lines.js | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/desktop/companion/test_lines.js b/desktop/companion/test_lines.js index f70a9ff..72addf2 100644 --- a/desktop/companion/test_lines.js +++ b/desktop/companion/test_lines.js @@ -19,7 +19,7 @@ const assert = require("assert"); const src = fs.readFileSync(__dirname + "/Lines.js", "utf8") .replace(/^\.pragma library$/m, ""); const L = new Function(src + - "\nreturn { lines, apps, monologue, appMap, appList, pickApp, pick, toMap };")(); + "\nreturn { lines, apps, artists, monologue, appMap, appList, pickApp, pickArtist, pick, toMap };")(); // The defaults are what she says until a set is saved. assert.strictEqual(L.pickApp("firefox", null, 0), L.apps.firefox[0]); @@ -60,4 +60,20 @@ assert.deepStrictEqual(L.toMap([ { cls: "firefox", lines: ["last"] }, ]), { firefox: ["last"] }); +// Artists: a case-insensitive substring of what MPRIS reports, first +// matching key wins, empty phrases skipped. +assert.strictEqual(L.pickArtist("Linkin Park", null, 0), L.artists["linkin park"][0]); +assert.strictEqual(L.pickArtist("LINKIN PARK, Jay-Z", null, 0), L.artists["linkin park"][0]); +assert.strictEqual(L.pickArtist("Nobody", null, 0), ""); +assert.strictEqual(L.pickArtist("", null, 0), ""); +assert.strictEqual(L.pickArtist("Air, Beck", { air: ["a"], beck: ["b"] }, 0), "a"); +assert.strictEqual(L.pickArtist("Airbourne", { air: ["", "a"] }, 0), "a"); +assert.strictEqual(L.pick("artist:Eminem", 0, null, null), L.artists.eminem[0]); +assert.strictEqual(L.pick("artist:Eminem", 0, null, { eminem: ["mine"] }), "mine"); +assert.strictEqual(L.pick("groove", 0), L.lines.groove[0]); + +// The same list helpers serve the artist set. +assert.strictEqual(L.appMap(null, L.artists), L.artists); +assert.strictEqual(L.appList(null, L.artists).length, Object.keys(L.artists).length); +assert.deepStrictEqual(L.toMap(L.appList(null, L.artists)), L.artists); console.log("ok"); |
