-
Notifications
You must be signed in to change notification settings - Fork 30.9k
/
Copy pathtest-assert-inequalities.js
50 lines (45 loc) · 1.45 KB
/
test-assert-inequalities.js
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
47
48
49
50
'use strict';
require('../common');
const assert = require('node:assert');
const { describe, it } = require('node:test');
const testCases = {
greaterThan: [
{ actual: 5, expected: 3, shouldPass: true },
{ actual: 3, expected: 3, shouldPass: false },
{ actual: 2, expected: 3, shouldPass: false },
],
atLeast: [
{ actual: 5, expected: 3, shouldPass: true },
{ actual: 3, expected: 3, shouldPass: true },
{ actual: 2, expected: 3, shouldPass: false },
],
lessThan: [
{ actual: 2, expected: 3, shouldPass: true },
{ actual: 3, expected: 3, shouldPass: false },
{ actual: 4, expected: 3, shouldPass: false },
],
atMost: [
{ actual: 2, expected: 3, shouldPass: true },
{ actual: 3, expected: 3, shouldPass: true },
{ actual: 4, expected: 3, shouldPass: false },
]
};
const comparison = {
greaterThan: 'greater than',
atLeast: 'greater than or equal to',
lessThan: 'less than',
atMost: 'less than or equal to'
};
const methods = Object.keys(testCases);
for (const method of methods) {
describe(`assert.${method}`, () => {
for (const { actual, expected, shouldPass } of testCases[method]) {
it(`should ${shouldPass ? 'pass' : 'fail'} with (${actual}, ${expected})`, () => {
assert[shouldPass ? 'doesNotThrow' : 'throws'](
() => assert[method](actual, expected),
new RegExp(`Expected ${actual} to be ${comparison[method]} ${expected}`)
);
});
}
});
}