| 
1 | 1 | /**  | 
2 | 2 | * @license Apache-2.0  | 
3 | 3 | *  | 
4 |  | -* Copyright (c) 2018 The Stdlib Authors.  | 
 | 4 | +* Copyright (c) 2023 The Stdlib Authors.  | 
5 | 5 | *  | 
6 | 6 | * Licensed under the Apache License, Version 2.0 (the "License");  | 
7 | 7 | * you may not use this file except in compliance with the License.  | 
 | 
21 | 21 | // MODULES //  | 
22 | 22 | 
 
  | 
23 | 23 | var tape = require( 'tape' );  | 
24 |  | -var proxyquire = require( 'proxyquire' );  | 
25 |  | -var Uint8Array = require( '@stdlib/array-uint8' );  | 
26 |  | -var detect = require( './../../dist' );  | 
27 |  | - | 
28 |  | - | 
29 |  | -// VARIABLES //  | 
30 |  | - | 
31 |  | -var hasUint8Array = ( typeof Uint8Array === 'function' );  | 
 | 24 | +var main = require( './../../dist' );  | 
32 | 25 | 
 
  | 
33 | 26 | 
 
  | 
34 | 27 | // TESTS //  | 
35 | 28 | 
 
  | 
36 |  | -tape( 'main export is a function', function test( t ) {  | 
 | 29 | +tape( 'main export is defined', function test( t ) {  | 
37 | 30 | 	t.ok( true, __filename );  | 
38 |  | -	t.strictEqual( typeof detect, 'function', 'main export is a function' );  | 
 | 31 | +	t.strictEqual( main !== void 0, true, 'main export is defined' );  | 
39 | 32 | 	t.end();  | 
40 | 33 | });  | 
41 |  | - | 
42 |  | -tape( 'feature detection result is a boolean', function test( t ) {  | 
43 |  | -	t.strictEqual( typeof detect(), 'boolean', 'detection result is a boolean' );  | 
44 |  | -	t.end();  | 
45 |  | -});  | 
46 |  | - | 
47 |  | -tape( 'if `Uint8Array` is supported, detection result is `true`', function test( t ) {  | 
48 |  | -	var mocked;  | 
49 |  | -	if ( hasUint8Array ) {  | 
50 |  | -		t.strictEqual( detect(), true, 'detection result is `true`' );  | 
51 |  | -	} else {  | 
52 |  | -		t.strictEqual( detect(), false, 'detection result is `false`' );  | 
53 |  | -	}  | 
54 |  | -	mocked = proxyquire( './../dist/main.js', {  | 
55 |  | -		'./uint8array.js': Mock,  | 
56 |  | -		'@stdlib/assert-is-uint8array': isArray  | 
57 |  | -	});  | 
58 |  | -	t.strictEqual( mocked(), true, 'detection result is `true` (mocked)' );  | 
59 |  | - | 
60 |  | -	t.end();  | 
61 |  | - | 
62 |  | -	function isArray() {  | 
63 |  | -		return true;  | 
64 |  | -	}  | 
65 |  | - | 
66 |  | -	function Mock() {  | 
67 |  | -		return [  | 
68 |  | -			1,  | 
69 |  | -			3,  | 
70 |  | -			253,  | 
71 |  | -			0,  | 
72 |  | -			1  | 
73 |  | -		];  | 
74 |  | -	}  | 
75 |  | -});  | 
76 |  | - | 
77 |  | -tape( 'if `Uint8Array` is not supported, detection result is `false`', function test( t ) {  | 
78 |  | -	var mocked;  | 
79 |  | -	if ( hasUint8Array ) {  | 
80 |  | -		t.strictEqual( detect(), true, 'detection result is `true`' );  | 
81 |  | -	} else {  | 
82 |  | -		t.strictEqual( detect(), false, 'detection result is `false`' );  | 
83 |  | -	}  | 
84 |  | -	mocked = proxyquire( './../dist/main.js', {  | 
85 |  | -		'./uint8array.js': {}  | 
86 |  | -	});  | 
87 |  | -	t.strictEqual( mocked(), false, 'detection result is `false`' );  | 
88 |  | - | 
89 |  | -	mocked = proxyquire( './../dist/main.js', {  | 
90 |  | -		'./uint8array.js': Mock1  | 
91 |  | -	});  | 
92 |  | -	t.strictEqual( mocked(), false, 'detection result is `false`' );  | 
93 |  | - | 
94 |  | -	mocked = proxyquire( './../dist/main.js', {  | 
95 |  | -		'./uint8array.js': Mock2,  | 
96 |  | -		'@stdlib/assert-is-uint8array': isArray  | 
97 |  | -	});  | 
98 |  | -	t.strictEqual( mocked(), false, 'detection result is `false`' );  | 
99 |  | - | 
100 |  | -	mocked = proxyquire( './../dist/main.js', {  | 
101 |  | -		'./uint8array.js': Mock3,  | 
102 |  | -		'@stdlib/assert-is-uint8array': isArray  | 
103 |  | -	});  | 
104 |  | -	t.strictEqual( mocked(), false, 'detection result is `false`' );  | 
105 |  | - | 
106 |  | -	mocked = proxyquire( './../dist/main.js', {  | 
107 |  | -		'./uint8array.js': Mock4  | 
108 |  | -	});  | 
109 |  | -	t.strictEqual( mocked(), false, 'detection result is `false`' );  | 
110 |  | - | 
111 |  | -	t.end();  | 
112 |  | - | 
113 |  | -	function isArray() {  | 
114 |  | -		return true;  | 
115 |  | -	}  | 
116 |  | - | 
117 |  | -	function Mock1() {  | 
118 |  | -		// Not a typed array:  | 
119 |  | -		return [];  | 
120 |  | -	}  | 
121 |  | - | 
122 |  | -	function Mock2() {  | 
123 |  | -		// Does not truncate...  | 
124 |  | -		return [ 1, 3.14, -3.14, 0, 1 ];  | 
125 |  | -	}  | 
126 |  | - | 
127 |  | -	function Mock3() {  | 
128 |  | -		// Does not wrap around...  | 
129 |  | -		return [ 1, 3, 253, 256, 257 ];  | 
130 |  | -	}  | 
131 |  | - | 
132 |  | -	function Mock4() {  | 
133 |  | -		throw new Error( 'beep' );  | 
134 |  | -	}  | 
135 |  | -});  | 
0 commit comments