Skip to content

Commit 0a0b7b8

Browse files
ventunoKrinkle
authored andcommitted
Assert: Introduce strict boolean true/false assertions
Fixes #1444. Closes #1445.
1 parent 91b6995 commit 0a0b7b8

File tree

4 files changed

+111
-0
lines changed

4 files changed

+111
-0
lines changed

docs/assert/false.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
layout: default
3+
title: false
4+
description: A strict boolean false comparison.
5+
categories:
6+
- assert
7+
---
8+
9+
## `false( actual [, message ] )`
10+
11+
A boolean check, equivalent to JUnit's `assertFalse()`. Passes if the first argument is false.
12+
13+
| name | description |
14+
|--------------------|--------------------------------------|
15+
| `actual` | Expression being tested |
16+
| `message` (string) | A short description of the assertion |
17+
18+
### Description
19+
20+
`false()` requires just one argument. If the argument evaluates to false, the assertion passes; otherwise, it fails.
21+
22+
[`true()`](/assert/true) can be used to explicitly test for a true value.
23+
24+
### Examples
25+
26+
```js
27+
QUnit.test( "false test", function( assert ) {
28+
assert.false( false, "false succeeds" );
29+
30+
assert.false( "not-empty", "not-empty string fails" );
31+
assert.false( "", "empty string fails" );
32+
assert.false( 0, "0 fails" );
33+
assert.false( true, "true fails" );
34+
assert.false( NaN, "NaN fails" );
35+
assert.false( null, "null fails" );
36+
assert.false( undefined, "undefined fails" );
37+
});
38+
```

docs/assert/true.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
---
2+
layout: default
3+
title: true
4+
description: A strict boolean true comparison.
5+
categories:
6+
- assert
7+
---
8+
9+
## `true( actual [, message ] )`
10+
11+
A boolean check, equivalent to JUnit's `assertTrue()`. Passes if the first argument is `true`.
12+
13+
| name | description |
14+
|--------------------|--------------------------------------|
15+
| `actual` | Expression being tested |
16+
| `message` (string) | A short description of the assertion |
17+
18+
### Description
19+
20+
`true()` requires just one argument. If the argument evaluates to true, the assertion passes; otherwise, it fails.
21+
22+
[`false()`](/assert/false) can be used to explicitly test for a false value.
23+
24+
### Examples
25+
26+
```js
27+
QUnit.test( "true test", function( assert ) {
28+
assert.true( true, "true succeeds" );
29+
30+
assert.true( "non-empty", "non-empty string fails" );
31+
assert.true( "", "empty string fails" );
32+
assert.true( 1, "1 fails" );
33+
assert.true( false, "false fails" );
34+
assert.true( NaN, "NaN fails" );
35+
assert.true( null, "null fails" );
36+
assert.true( undefined, "undefined fails" );
37+
});
38+
```
39+

src/assert.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,24 @@ class Assert {
173173
} );
174174
}
175175

176+
true( result, message ) {
177+
this.pushResult( {
178+
result: result === true,
179+
actual: result,
180+
expected: true,
181+
message
182+
} );
183+
}
184+
185+
false( result, message ) {
186+
this.pushResult( {
187+
result: result === false,
188+
actual: result,
189+
expected: false,
190+
message
191+
} );
192+
}
193+
176194
equal( actual, expected, message ) {
177195

178196
// eslint-disable-next-line eqeqeq

test/main/assert.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,22 @@ QUnit.test( "notOk", function( assert ) {
3838
assert.notOk( NaN );
3939
} );
4040

41+
QUnit.test( "true", function( assert ) {
42+
function functionThatReturnsTrue() {
43+
return true;
44+
}
45+
assert.true( true );
46+
assert.true( functionThatReturnsTrue() );
47+
} );
48+
49+
QUnit.test( "false", function( assert ) {
50+
function functionThatReturnsFalse() {
51+
return false;
52+
}
53+
assert.false( false );
54+
assert.false( functionThatReturnsFalse() );
55+
} );
56+
4157
QUnit.test( "equal", function( assert ) {
4258
assert.equal( 1, 1 );
4359
assert.equal( "foo", "foo" );

0 commit comments

Comments
 (0)