From e504e107b51bc7db50b235758788370d0c373fd4 Mon Sep 17 00:00:00 2001 From: Miodec Date: Sat, 14 May 2022 18:55:59 +0200 Subject: [PATCH] checking if any fields are undefined --- frontend/src/ts/test/test-logic.ts | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/frontend/src/ts/test/test-logic.ts b/frontend/src/ts/test/test-logic.ts index 4052e5e80..815272f12 100644 --- a/frontend/src/ts/test/test-logic.ts +++ b/frontend/src/ts/test/test-logic.ts @@ -1406,7 +1406,27 @@ export async function finish(difficultyFailed = false): Promise { const completedEvent = buildCompletedEvent(difficultyFailed); - //todo check if any fields are undefined + function countUndefined(input: unknown): number { + if (typeof input === "undefined") { + return 1; + } else if (typeof input === "object" && input !== null) { + return Object.values(input).reduce( + (a, b) => a + countUndefined(b), + 0 + ) as number; + } else { + return 0; + } + } + + if (countUndefined(completedEvent) > 0) { + console.log(completedEvent); + Notifications.add( + "Failed to save result: One of the result fields is undefined. Please report this", + -1 + ); + return; + } ///////// completed event ready