forked from Nova-reward/Nova-Rewards
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathassertions.js
More file actions
46 lines (40 loc) · 1.36 KB
/
Copy pathassertions.js
File metadata and controls
46 lines (40 loc) · 1.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import assert from 'assert';
export function assertEqual(actual, expected, message) {
assert.strictEqual(actual, expected, message);
}
export function assertNotEqual(actual, expected, message) {
assert.notStrictEqual(actual, expected, message);
}
export function assertDeepEqual(actual, expected, message) {
assert.deepStrictEqual(actual, expected, message);
}
export function assertContains(container, value, message) {
if (!String(container).includes(String(value))) {
throw new Error(message || `Expected ${container} to contain ${value}`);
}
}
export function assertThrows(fn, expectedMessage, message) {
try {
fn();
} catch (error) {
if (expectedMessage && !String(error.message).includes(expectedMessage)) {
throw new Error(message || `Expected error message to include '${expectedMessage}', got '${error.message}'`);
}
return;
}
throw new Error(message || 'Expected function to throw');
}
export async function assertThrowsAsync(asyncFn, expectedMessage, message) {
let error;
try {
await asyncFn();
} catch (err) {
error = err;
}
if (!error) {
throw new Error(message || 'Expected async function to reject');
}
if (expectedMessage && !String(error.message).includes(expectedMessage)) {
throw new Error(message || `Expected rejection message to include '${expectedMessage}', got '${error.message}'`);
}
}