From 2a2472a052bca614fc074da29620566882b3175d Mon Sep 17 00:00:00 2001 From: Adrian Wannenmacher Date: Sun, 15 Feb 2026 04:37:52 +0100 Subject: [PATCH] test session id invalid fromStruct --- models/session.js | 3 +++ models/session.test.js | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/models/session.js b/models/session.js index 7256191..14ed930 100644 --- a/models/session.js +++ b/models/session.js @@ -141,6 +141,9 @@ export default class Session { if ("id" in value) { if (typeof value.id !== "number") throw new TypeError("if struct contains id, then it must be a number"); + if (!Number.isInteger(value.id)) + throw new RangeError( + "if struct contains id, then it must be an integer"); this.id = value.id; } diff --git a/models/session.test.js b/models/session.test.js index 3f4be85..3a87209 100644 --- a/models/session.test.js +++ b/models/session.test.js @@ -208,6 +208,20 @@ export default function() { finished.currentRound.raise(Team.We); finished.currentRound.winner = Team.They; + struct.id = "nope"; + doIt( + "string id", + new TypeError("if struct contains id, then it must be a number")); + struct.id = 1.1; + doIt( + "float id", + new RangeError("if struct contains id, then it must be an integer")); + struct.id = undefined; + doIt( + "undefined id", + new TypeError("if struct contains id, then it must be a number")); + delete struct.id; + doIt("no goal", new TypeError("struct must contain goal as number")); struct.goal = "3"; doIt("string goal", new TypeError("struct must contain goal as number"));