test(main): completar fase 2 con cobertura de iconos y timing

This commit is contained in:
Pandipipas
2026-02-21 18:42:27 +01:00
parent d3d33324ff
commit 50b145a320
7 changed files with 154 additions and 16 deletions
+46
View File
@@ -0,0 +1,46 @@
import assert from "node:assert/strict";
import test from "node:test";
import { AppRuntimeConfig } from "../main/config/runtime-config";
import { resolveAppIconPath } from "../main/windows/icon-path";
function getBaseConfig(): AppRuntimeConfig {
return {
title: "Scoreko",
userModelId: "com.scoreko.desktop",
nodecgPort: "9090",
bundleName: "scoreko-dev",
dashboardRoute: "dashboard/scoreko-dev/main.html?standalone=true",
loadingRoute: "dashboard/loading/main.html?standalone=true",
loadDelayMs: 10000,
startupTimeoutMs: 30000,
nodecgKillTimeoutMs: 2500,
};
}
test("resolveAppIconPath prioriza iconPathOverride cuando existe", () => {
const runtimeConfig: AppRuntimeConfig = {
...getBaseConfig(),
iconPathOverride: "/custom/icon.ico",
};
const iconPath = resolveAppIconPath(runtimeConfig, "/app", (candidate) => candidate === "/custom/icon.ico");
assert.equal(iconPath, "/custom/icon.ico");
});
test("resolveAppIconPath cae al primer icono por defecto existente", () => {
const runtimeConfig = getBaseConfig();
const iconPath = resolveAppIconPath(runtimeConfig, "/app", (candidate) => candidate === "/app/static/icons/icon.png");
assert.equal(iconPath, "/app/static/icons/icon.png");
});
test("resolveAppIconPath devuelve undefined cuando no hay iconos", () => {
const runtimeConfig = getBaseConfig();
const iconPath = resolveAppIconPath(runtimeConfig, "/app", () => false);
assert.equal(iconPath, undefined);
});