mirror of
https://github.com/arthur-pbty/flint.git
synced 2026-08-01 20:29:03 +02:00
55 lines
1.6 KiB
TypeScript
55 lines
1.6 KiB
TypeScript
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/validators/presence.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);
|
|
});
|