fix(ui): restore background after playlist reset

This commit is contained in:
DCCONSTRUCTIONS
2026-07-29 15:30:35 +03:00
parent 32c5d0dda5
commit 6180c3b8b7
3 changed files with 96 additions and 13 deletions
@@ -143,3 +143,65 @@ test("editing a cloned page cannot mutate accepted settings", () => {
assert.equal(accepted.pages.fleet.background.enabled, false);
assert.equal(accepted.pages.fleet.background.items.length, 0);
});
test("repopulating an emptied playlist restores its background lifecycle", () => {
const original = {
enabled: true,
imageDurationSeconds: 10,
items: [
{
id: "media-original",
source: "url",
url: "https://example.test/original.mp4",
mediaKind: "video",
fileName: null,
},
],
};
const emptied = environment.removeEnvironmentMediaItem(
original,
"media-original",
);
const replacement = {
id: "media-replacement",
source: "file",
url: null,
mediaKind: null,
fileName: null,
};
const repopulated = environment.appendEnvironmentMediaItem(
emptied,
replacement,
);
assert.equal(emptied.enabled, false);
assert.equal(emptied.items.length, 0);
assert.equal(repopulated.enabled, true);
assert.deepEqual(repopulated.items, [replacement]);
});
test("adding to an intentionally disabled nonempty playlist keeps it disabled", () => {
const disabled = {
enabled: false,
imageDurationSeconds: 10,
items: [
{
id: "media-hidden",
source: "url",
url: "https://example.test/hidden.png",
mediaKind: "image",
fileName: null,
},
],
};
const next = environment.appendEnvironmentMediaItem(disabled, {
id: "media-second",
source: "file",
url: null,
mediaKind: null,
fileName: null,
});
assert.equal(next.enabled, false);
assert.equal(next.items.length, 2);
});