reorganizage du projet et mise en place d'un vrai build

This commit is contained in:
Puechberty Arthur
2026-04-13 19:42:38 +02:00
parent 0f82c7e287
commit 3eb23eb27a
30 changed files with 823 additions and 307 deletions
+54
View File
@@ -0,0 +1,54 @@
import assert from "node:assert/strict";
import test from "node:test";
import {
DEFAULT_ACTIVITY_TEXT,
MAX_ACTIVITY_ROTATION_INTERVAL_SECONDS,
MIN_ACTIVITY_ROTATION_INTERVAL_SECONDS,
parsePresenceState,
sanitizeActivityTexts,
sanitizePresenceRotationIntervalSeconds,
} from "../src/framework/presence/presenceTypes.js";
test("sanitizeActivityTexts fallback sur le texte par defaut", () => {
const texts = sanitizeActivityTexts([" ", ""]);
assert.deepEqual(texts, [DEFAULT_ACTIVITY_TEXT]);
});
test("sanitizePresenceRotationIntervalSeconds borne les valeurs", () => {
assert.equal(sanitizePresenceRotationIntervalSeconds(1), MIN_ACTIVITY_ROTATION_INTERVAL_SECONDS);
assert.equal(
sanitizePresenceRotationIntervalSeconds(MAX_ACTIVITY_ROTATION_INTERVAL_SECONDS + 100),
MAX_ACTIVITY_ROTATION_INTERVAL_SECONDS,
);
});
test("parsePresenceState reconstruit un etat valide", () => {
const parsed = parsePresenceState({
status: "online",
activity: {
type: "PLAYING",
texts: ["Hello", "World"],
rotationIntervalSeconds: 20,
},
});
assert.ok(parsed);
assert.equal(parsed?.status, "online");
assert.equal(parsed?.activity.type, "PLAYING");
assert.deepEqual(parsed?.activity.texts, ["Hello", "World"]);
assert.equal(parsed?.activity.rotationIntervalSeconds, 20);
});
test("parsePresenceState retourne null sur statut invalide", () => {
const parsed = parsePresenceState({
status: "invalid",
activity: {
type: "PLAYING",
texts: ["Hello"],
rotationIntervalSeconds: 20,
},
});
assert.equal(parsed, null);
});