@@ -2,6 +2,7 @@ import { assertThrows } from "./deps_test.ts";
2
2
import {
3
3
ensure ,
4
4
ensureArray ,
5
+ ensureBoolean ,
5
6
ensureFunction ,
6
7
ensureLike ,
7
8
ensureNone ,
@@ -11,7 +12,7 @@ import {
11
12
ensureString ,
12
13
ensureUndefined ,
13
14
} from "./ensure.ts" ;
14
- import { isNumber , isString } from "./is.ts" ;
15
+ import { isBoolean , isNumber , isString } from "./is.ts" ;
15
16
16
17
Deno . test ( "ensure does nothing when pred return true" , ( ) => {
17
18
ensure ( "a" , isString ) ;
@@ -27,6 +28,8 @@ Deno.test("ensureString does nothing on string", () => {
27
28
} ) ;
28
29
Deno . test ( "ensureString throws error on non string" , ( ) => {
29
30
assertThrows ( ( ) => ensureString ( 0 ) ) ;
31
+ assertThrows ( ( ) => ensureString ( true ) ) ;
32
+ assertThrows ( ( ) => ensureString ( false ) ) ;
30
33
assertThrows ( ( ) => ensureString ( [ ] ) ) ;
31
34
assertThrows ( ( ) => ensureString ( { } ) ) ;
32
35
assertThrows ( ( ) => ensureString ( function ( ) { } ) ) ;
@@ -41,13 +44,29 @@ Deno.test("ensureNumber does nothing on number", () => {
41
44
} ) ;
42
45
Deno . test ( "ensureNumber throws error on non number" , ( ) => {
43
46
assertThrows ( ( ) => ensureNumber ( "a" ) ) ;
47
+ assertThrows ( ( ) => ensureNumber ( true ) ) ;
48
+ assertThrows ( ( ) => ensureNumber ( false ) ) ;
44
49
assertThrows ( ( ) => ensureNumber ( [ ] ) ) ;
45
50
assertThrows ( ( ) => ensureNumber ( { } ) ) ;
46
51
assertThrows ( ( ) => ensureNumber ( function ( ) { } ) ) ;
47
52
assertThrows ( ( ) => ensureNumber ( undefined ) ) ;
48
53
assertThrows ( ( ) => ensureNumber ( null ) ) ;
49
54
} ) ;
50
55
56
+ Deno . test ( "ensureBoolean does nothing on boolean" , ( ) => {
57
+ ensureBoolean ( true ) ;
58
+ ensureBoolean ( false ) ;
59
+ } ) ;
60
+ Deno . test ( "ensureBoolean throws error on non boolean" , ( ) => {
61
+ assertThrows ( ( ) => ensureBoolean ( 0 ) ) ;
62
+ assertThrows ( ( ) => ensureBoolean ( "a" ) ) ;
63
+ assertThrows ( ( ) => ensureBoolean ( [ ] ) ) ;
64
+ assertThrows ( ( ) => ensureBoolean ( { } ) ) ;
65
+ assertThrows ( ( ) => ensureBoolean ( function ( ) { } ) ) ;
66
+ assertThrows ( ( ) => ensureBoolean ( undefined ) ) ;
67
+ assertThrows ( ( ) => ensureBoolean ( null ) ) ;
68
+ } ) ;
69
+
51
70
Deno . test ( "ensureArray does nothing on array" , ( ) => {
52
71
ensureArray ( [ ] ) ;
53
72
ensureArray ( [ 0 , 1 , 2 ] ) ;
@@ -56,6 +75,8 @@ Deno.test("ensureArray does nothing on array", () => {
56
75
Deno . test ( "ensureArray throws error on non array" , ( ) => {
57
76
assertThrows ( ( ) => ensureArray ( "a" ) ) ;
58
77
assertThrows ( ( ) => ensureArray ( 0 ) ) ;
78
+ assertThrows ( ( ) => ensureArray ( true ) ) ;
79
+ assertThrows ( ( ) => ensureArray ( false ) ) ;
59
80
assertThrows ( ( ) => ensureArray ( { } ) ) ;
60
81
assertThrows ( ( ) => ensureArray ( function ( ) { } ) ) ;
61
82
assertThrows ( ( ) => ensureArray ( undefined ) ) ;
@@ -64,10 +85,12 @@ Deno.test("ensureArray throws error on non array", () => {
64
85
Deno . test ( "ensureArray<T> does nothing on T array" , ( ) => {
65
86
ensureArray ( [ 0 , 1 , 2 ] , isNumber ) ;
66
87
ensureArray ( [ "a" , "b" , "c" ] , isString ) ;
88
+ ensureArray ( [ true , false , true ] , isBoolean ) ;
67
89
} ) ;
68
90
Deno . test ( "ensureArray<T> throws error on non T array" , ( ) => {
69
91
assertThrows ( ( ) => ensureArray ( [ 0 , 1 , 2 ] , isString ) ) ;
70
92
assertThrows ( ( ) => ensureArray ( [ "a" , "b" , "c" ] , isNumber ) ) ;
93
+ assertThrows ( ( ) => ensureArray ( [ true , false , true ] , isString ) ) ;
71
94
} ) ;
72
95
73
96
Deno . test ( "ensureObject does nothing on object" , ( ) => {
@@ -78,6 +101,8 @@ Deno.test("ensureObject does nothing on object", () => {
78
101
Deno . test ( "ensureObject throws error on non object" , ( ) => {
79
102
assertThrows ( ( ) => ensureObject ( "a" ) ) ;
80
103
assertThrows ( ( ) => ensureObject ( 0 ) ) ;
104
+ assertThrows ( ( ) => ensureObject ( true ) ) ;
105
+ assertThrows ( ( ) => ensureObject ( false ) ) ;
81
106
assertThrows ( ( ) => ensureObject ( [ ] ) ) ;
82
107
assertThrows ( ( ) => ensureObject ( function ( ) { } ) ) ;
83
108
assertThrows ( ( ) => ensureObject ( undefined ) ) ;
@@ -86,10 +111,12 @@ Deno.test("ensureObject throws error on non object", () => {
86
111
Deno . test ( "ensureObject<T> does nothing on T object" , ( ) => {
87
112
ensureObject ( { a : 0 } , isNumber ) ;
88
113
ensureObject ( { a : "a" } , isString ) ;
114
+ ensureObject ( { a : true } , isBoolean ) ;
89
115
} ) ;
90
116
Deno . test ( "ensureObject<T> throws error on non T object" , ( ) => {
91
117
assertThrows ( ( ) => ensureObject ( { a : 0 } , isString ) ) ;
92
118
assertThrows ( ( ) => ensureObject ( { a : "a" } , isNumber ) ) ;
119
+ assertThrows ( ( ) => ensureObject ( { a : true } , isString ) ) ;
93
120
} ) ;
94
121
95
122
Deno . test ( "ensureFunction does nothing on function" , ( ) => {
@@ -101,6 +128,8 @@ Deno.test("ensureFunction does nothing on function", () => {
101
128
Deno . test ( "ensureFunction throws error on non function" , ( ) => {
102
129
assertThrows ( ( ) => ensureFunction ( "a" ) ) ;
103
130
assertThrows ( ( ) => ensureFunction ( 0 ) ) ;
131
+ assertThrows ( ( ) => ensureFunction ( true ) ) ;
132
+ assertThrows ( ( ) => ensureFunction ( false ) ) ;
104
133
assertThrows ( ( ) => ensureFunction ( [ ] ) ) ;
105
134
assertThrows ( ( ) => ensureFunction ( { } ) ) ;
106
135
assertThrows ( ( ) => ensureFunction ( undefined ) ) ;
@@ -113,6 +142,8 @@ Deno.test("ensureNull does nothing on null", () => {
113
142
Deno . test ( "ensureNull throws error on non null" , ( ) => {
114
143
assertThrows ( ( ) => ensureNull ( "a" ) ) ;
115
144
assertThrows ( ( ) => ensureNull ( 0 ) ) ;
145
+ assertThrows ( ( ) => ensureNull ( true ) ) ;
146
+ assertThrows ( ( ) => ensureNull ( false ) ) ;
116
147
assertThrows ( ( ) => ensureNull ( [ ] ) ) ;
117
148
assertThrows ( ( ) => ensureNull ( { } ) ) ;
118
149
assertThrows ( ( ) => ensureNull ( function ( ) { } ) ) ;
@@ -125,6 +156,8 @@ Deno.test("ensureUndefined does nothing on undefined", () => {
125
156
Deno . test ( "ensureUndefined throws error on non undefined" , ( ) => {
126
157
assertThrows ( ( ) => ensureUndefined ( "a" ) ) ;
127
158
assertThrows ( ( ) => ensureUndefined ( 0 ) ) ;
159
+ assertThrows ( ( ) => ensureUndefined ( true ) ) ;
160
+ assertThrows ( ( ) => ensureUndefined ( false ) ) ;
128
161
assertThrows ( ( ) => ensureUndefined ( [ ] ) ) ;
129
162
assertThrows ( ( ) => ensureUndefined ( { } ) ) ;
130
163
assertThrows ( ( ) => ensureUndefined ( function ( ) { } ) ) ;
@@ -138,6 +171,8 @@ Deno.test("ensureNone does nothing on null or undefined", () => {
138
171
Deno . test ( "ensureNone throws error on non null nor undefined" , ( ) => {
139
172
assertThrows ( ( ) => ensureNone ( "a" ) ) ;
140
173
assertThrows ( ( ) => ensureNone ( 0 ) ) ;
174
+ assertThrows ( ( ) => ensureNone ( true ) ) ;
175
+ assertThrows ( ( ) => ensureNone ( false ) ) ;
141
176
assertThrows ( ( ) => ensureNone ( [ ] ) ) ;
142
177
assertThrows ( ( ) => ensureNone ( { } ) ) ;
143
178
assertThrows ( ( ) => ensureNone ( function ( ) { } ) ) ;
@@ -148,6 +183,8 @@ Deno.test("ensureLike does it's job on string", () => {
148
183
ensureLike ( ref , "Hello" ) ;
149
184
150
185
assertThrows ( ( ) => ensureLike ( ref , 0 ) ) ;
186
+ assertThrows ( ( ) => ensureLike ( ref , true ) ) ;
187
+ assertThrows ( ( ) => ensureLike ( ref , false ) ) ;
151
188
assertThrows ( ( ) => ensureLike ( ref , [ ] ) ) ;
152
189
assertThrows ( ( ) => ensureLike ( ref , { } ) ) ;
153
190
assertThrows ( ( ) => ensureLike ( ref , function ( ) { } ) ) ;
@@ -161,6 +198,8 @@ Deno.test("ensureLike does it's job on number", () => {
161
198
ensureLike ( ref , 0.1 ) ;
162
199
163
200
assertThrows ( ( ) => ensureLike ( ref , "a" ) ) ;
201
+ assertThrows ( ( ) => ensureLike ( ref , true ) ) ;
202
+ assertThrows ( ( ) => ensureLike ( ref , false ) ) ;
164
203
assertThrows ( ( ) => ensureLike ( ref , [ ] ) ) ;
165
204
assertThrows ( ( ) => ensureLike ( ref , { } ) ) ;
166
205
assertThrows ( ( ) => ensureLike ( ref , function ( ) { } ) ) ;
@@ -184,9 +223,11 @@ Deno.test("ensureLike does it's job on T array", () => {
184
223
const ref : unknown [ ] = [ ] ;
185
224
ensureLike ( ref , [ 0 , 1 , 2 ] , isNumber ) ;
186
225
ensureLike ( ref , [ "a" , "b" , "c" ] , isString ) ;
226
+ ensureLike ( ref , [ true , false , true ] , isBoolean ) ;
187
227
188
228
assertThrows ( ( ) => ensureLike ( ref , [ 0 , 1 , 2 ] , isString ) ) ;
189
229
assertThrows ( ( ) => ensureLike ( ref , [ "a" , "b" , "c" ] , isNumber ) ) ;
230
+ assertThrows ( ( ) => ensureLike ( ref , [ true , false , true ] , isString ) ) ;
190
231
} ) ;
191
232
Deno . test ( "ensureLike does it's job on tuple" , ( ) => {
192
233
const ref = [ "" , 0 , "" ] ;
@@ -206,6 +247,8 @@ Deno.test("ensureLike does it's job on object", () => {
206
247
207
248
assertThrows ( ( ) => ensureLike ( ref , "a" ) ) ;
208
249
assertThrows ( ( ) => ensureLike ( ref , 0 ) ) ;
250
+ assertThrows ( ( ) => ensureLike ( ref , true ) ) ;
251
+ assertThrows ( ( ) => ensureLike ( ref , false ) ) ;
209
252
assertThrows ( ( ) => ensureLike ( ref , [ ] ) ) ;
210
253
assertThrows ( ( ) => ensureLike ( ref , function ( ) { } ) ) ;
211
254
assertThrows ( ( ) => ensureLike ( ref , undefined ) ) ;
@@ -215,9 +258,11 @@ Deno.test("ensureLike does it's job on T object", () => {
215
258
const ref = { } ;
216
259
ensureLike ( ref , { a : 0 } , isNumber ) ;
217
260
ensureLike ( ref , { a : "a" } , isString ) ;
261
+ ensureLike ( ref , { a : true } , isBoolean ) ;
218
262
219
263
assertThrows ( ( ) => ensureLike ( ref , { a : 0 } , isString ) ) ;
220
264
assertThrows ( ( ) => ensureLike ( ref , { a : "a" } , isNumber ) ) ;
265
+ assertThrows ( ( ) => ensureLike ( ref , { a : true } , isString ) ) ;
221
266
} ) ;
222
267
Deno . test ( "ensureLike does it's job on struct" , ( ) => {
223
268
const ref = { foo : "" , bar : 0 } ;
@@ -237,6 +282,8 @@ Deno.test("ensureLike does it's job on function", () => {
237
282
238
283
assertThrows ( ( ) => ensureLike ( ref , "a" ) ) ;
239
284
assertThrows ( ( ) => ensureLike ( ref , 0 ) ) ;
285
+ assertThrows ( ( ) => ensureLike ( ref , true ) ) ;
286
+ assertThrows ( ( ) => ensureLike ( ref , false ) ) ;
240
287
assertThrows ( ( ) => ensureLike ( ref , [ ] ) ) ;
241
288
assertThrows ( ( ) => ensureLike ( ref , { } ) ) ;
242
289
assertThrows ( ( ) => ensureLike ( ref , undefined ) ) ;
@@ -248,6 +295,8 @@ Deno.test("ensureLike does it's job on null", () => {
248
295
249
296
assertThrows ( ( ) => ensureLike ( ref , "a" ) ) ;
250
297
assertThrows ( ( ) => ensureLike ( ref , 0 ) ) ;
298
+ assertThrows ( ( ) => ensureLike ( ref , true ) ) ;
299
+ assertThrows ( ( ) => ensureLike ( ref , false ) ) ;
251
300
assertThrows ( ( ) => ensureLike ( ref , [ ] ) ) ;
252
301
assertThrows ( ( ) => ensureLike ( ref , { } ) ) ;
253
302
assertThrows ( ( ) => ensureLike ( ref , function ( ) { } ) ) ;
@@ -259,6 +308,8 @@ Deno.test("ensureLike does it's job on undefined", () => {
259
308
260
309
assertThrows ( ( ) => ensureLike ( ref , "a" ) ) ;
261
310
assertThrows ( ( ) => ensureLike ( ref , 0 ) ) ;
311
+ assertThrows ( ( ) => ensureLike ( ref , true ) ) ;
312
+ assertThrows ( ( ) => ensureLike ( ref , false ) ) ;
262
313
assertThrows ( ( ) => ensureLike ( ref , [ ] ) ) ;
263
314
assertThrows ( ( ) => ensureLike ( ref , { } ) ) ;
264
315
assertThrows ( ( ) => ensureLike ( ref , function ( ) { } ) ) ;
0 commit comments