assert.ts: skip own stack frames
This commit is contained in:
1
src/lib/extern/qt.ts
vendored
1
src/lib/extern/qt.ts
vendored
@@ -1,6 +1,5 @@
|
||||
type Console = {
|
||||
log(...args: any[]): void;
|
||||
trace(): void;
|
||||
assert(assertion: boolean, message?: string): void;
|
||||
};
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user