From d926be2e12ae831d067309131a3b20dd86e32861 Mon Sep 17 00:00:00 2001 From: Peter Fajdiga Date: Fri, 20 Sep 2024 11:53:03 +0200 Subject: [PATCH] assert.ts: skip own stack frames --- src/lib/extern/qt.ts | 1 - src/tests/utils/assert.ts | 22 +++++++++++++--------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/lib/extern/qt.ts b/src/lib/extern/qt.ts index bb90d25..055eb50 100644 --- a/src/lib/extern/qt.ts +++ b/src/lib/extern/qt.ts @@ -1,6 +1,5 @@ type Console = { log(...args: any[]): void; - trace(): void; assert(assertion: boolean, message?: string): void; }; diff --git a/src/tests/utils/assert.ts b/src/tests/utils/assert.ts index d6f8bc7..b57621e 100644 --- a/src/tests/utils/assert.ts +++ b/src/tests/utils/assert.ts @@ -1,4 +1,4 @@ -function assert(assertion: boolean, message?: string) { +function assert(assertion: boolean, message?: string, skip: number = 0) { if (assertion) { return; } @@ -8,22 +8,26 @@ function assert(assertion: boolean, message?: string) { } else { console.assert(assertion); } - console.trace(); + console.log(getStackTrace(skip+1)); process.exit(1); } -function assertEqual(actual: any, expected: any) { - assert(expected == actual, `Values not equal -Expected: ${expected} -Actual: ${actual}`); +function getStackTrace(skip: number) { + return new Error().stack!.split("\n").slice(skip+2).join("\n"); } -function assertRectEqual(actual: QmlRect, expected: QmlRect) { +function assertEqual(actual: any, expected: any, skip: number = 0) { + assert(expected == actual, `Values not equal +Expected: ${expected} +Actual: ${actual}`, skip+1); +} + +function assertRectEqual(actual: QmlRect, expected: QmlRect, skip: number = 0) { assert(rectEquals(expected, actual), `QmlRect not equal Expected: ${expected} -Actual: ${actual}`); +Actual: ${actual}`, skip+1); } function assertRect(actual: QmlRect, x: number, y: number, width: number, height: number) { - assertRectEqual(actual, new MockQmlRect(x, y, width, height)); + assertRectEqual(actual, new MockQmlRect(x, y, width, height), 1); }