summaryrefslogtreecommitdiff
path: root/tests/nowPlaying.test.ts
diff options
context:
space:
mode:
authorxXJSONDeruloXx <danielhimebauch@gmail.com>2026-09-11 09:38:35 -0400
committerxXJSONDeruloXx <danielhimebauch@gmail.com>2026-09-11 09:38:35 -0400
commita8388009b2ba141caafe7f2e35f7029d93e7811f (patch)
tree2f939dba1042a1d1d9c03e4aa3470ad6332864e2 /tests/nowPlaying.test.ts
parent9138886fd5315eb0e8c6a4a549a9d44f93ba3cde (diff)
downloaddecky-lsfg-vk-a8388009b2ba141caafe7f2e35f7029d93e7811f.tar.gz
decky-lsfg-vk-a8388009b2ba141caafe7f2e35f7029d93e7811f.zip
handle edge cases on flatpaks and ordering
Diffstat (limited to 'tests/nowPlaying.test.ts')
-rw-r--r--tests/nowPlaying.test.ts25
1 files changed, 23 insertions, 2 deletions
diff --git a/tests/nowPlaying.test.ts b/tests/nowPlaying.test.ts
index 3f0d891..8a52b67 100644
--- a/tests/nowPlaying.test.ts
+++ b/tests/nowPlaying.test.ts
@@ -54,8 +54,12 @@ test("Flatpak runtime wins while a Steam shortcut is running", () => {
assert.equal(target?.kind === "flatpak" ? target.launcher?.name : null, "1080 Snowboarding");
});
-test("Flatpak runtime wins over a native Steam game", () => {
- assert.equal(resolveNowPlayingTarget(game(false), flatpak("org.example.Game"))?.kind, "flatpak");
+test("native Steam game wins over an unrelated Flatpak", () => {
+ assert.equal(resolveNowPlayingTarget(game(false), flatpak("org.example.Game"))?.kind, "steam");
+});
+
+test("unconfigured native Steam game blocks unrelated Flatpak Now Playing", () => {
+ assert.equal(resolveNowPlayingTarget(game(false, false), flatpak("org.example.Game")), null);
});
test("direct Flatpak launch creates a Flatpak Now Playing target", () => {
@@ -65,6 +69,23 @@ test("direct Flatpak launch creates a Flatpak Now Playing target", () => {
assert.equal(target?.kind === "flatpak" ? target.launcher : null, null);
});
+test("multiple inactive Flatpaks do not create an arbitrary Now Playing target", () => {
+ const apps = [flatpak("org.example.one"), flatpak("org.example.two")];
+ const running = [
+ { app_id: "org.example.one", active: false, pid: "100", start_time: 500 },
+ { app_id: "org.example.two", active: false, pid: "200", start_time: 600 },
+ ];
+
+ assert.equal(selectMostRecentRunningFlatpak(apps, running), null);
+});
+
+test("one inactive Flatpak remains a usable fallback", () => {
+ const apps = [flatpak("org.example.one")];
+ const running = [{ app_id: "org.example.one", active: false, pid: "100", start_time: 500 }];
+
+ assert.equal(selectMostRecentRunningFlatpak(apps, running)?.app_id, "org.example.one");
+});
+
test("configured Steam target remains the fallback", () => {
const target = resolveNowPlayingTarget(game(false), null);