Skip to content

Commit 7ffdd1b

Browse files
committed
Add tests
1 parent cfdeaca commit 7ffdd1b

1 file changed

Lines changed: 140 additions & 0 deletions

File tree

Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
'use strict';
2+
3+
// MODULES //
4+
5+
var tape = require( 'tape' );
6+
var proxyquire = require( 'proxyquire' );
7+
var pkg2alias = require( './../lib/functions/pkg2alias.js' );
8+
9+
10+
// FIXTURES //
11+
12+
function namespace() {
13+
var ns = [
14+
{
15+
'alias': 'beep',
16+
'path': '@stdlib/beep',
17+
'value': {}
18+
},
19+
{
20+
'alias': 'boop',
21+
'path': '@stdlib/foo/boop',
22+
'value': []
23+
},
24+
{
25+
'value': {}
26+
}
27+
];
28+
ns[ '@noCallThru' ] = true;
29+
return ns;
30+
}
31+
32+
33+
// TESTS //
34+
35+
tape( 'main export is a function', function test( t ) {
36+
t.ok( true, __filename );
37+
t.strictEqual( typeof pkg2alias, 'function', 'main export is a function' );
38+
t.end();
39+
});
40+
41+
tape( 'the function throws an error if not provided a string', function test( t ) {
42+
var values;
43+
var i;
44+
45+
values = [
46+
5,
47+
NaN,
48+
true,
49+
false,
50+
null,
51+
void 0,
52+
[],
53+
{},
54+
function noop() {}
55+
];
56+
57+
for ( i = 0; i < values.length; i++ ) {
58+
t.throws( badValue( values[i] ), TypeError, 'throws an error when provided '+values[i] );
59+
}
60+
t.end();
61+
62+
function badValue( value ) {
63+
return function badValue() {
64+
pkg2alias( value );
65+
};
66+
}
67+
});
68+
69+
tape( 'the function resolves a package name to an alias', function test( t ) {
70+
var pkg2alias;
71+
var mock;
72+
var ns;
73+
74+
mock = {
75+
'log': log
76+
};
77+
78+
ns = namespace();
79+
80+
pkg2alias = proxyquire( './../lib/functions/pkg2alias.js', {
81+
'./../namespace.js': ns,
82+
'./../console.js': mock
83+
});
84+
85+
pkg2alias( '@stdlib/beep' );
86+
87+
function log( str ) {
88+
t.strictEqual( str, 'beep', 'logs expected value' );
89+
t.end();
90+
}
91+
});
92+
93+
tape( 'the function resolves a package name to an alias', function test( t ) {
94+
var pkg2alias;
95+
var mock;
96+
var ns;
97+
98+
mock = {
99+
'log': log
100+
};
101+
102+
ns = namespace();
103+
104+
pkg2alias = proxyquire( './../lib/functions/pkg2alias.js', {
105+
'./../namespace.js': ns,
106+
'./../console.js': mock
107+
});
108+
109+
pkg2alias( '@stdlib/foo/boop' );
110+
111+
function log( str ) {
112+
t.strictEqual( str, 'boop', 'logs expected value' );
113+
t.end();
114+
}
115+
});
116+
117+
tape( 'if unable to resolve an alias, the function logs a message', function test( t ) {
118+
var pkg2alias;
119+
var mock;
120+
var ns;
121+
122+
mock = {
123+
'log': log
124+
};
125+
126+
ns = namespace();
127+
128+
pkg2alias = proxyquire( './../lib/functions/pkg2alias.js', {
129+
'./../namespace.js': ns,
130+
'./../console.js': mock
131+
});
132+
133+
pkg2alias( 'adkfjadkfjsldjjfasdlfsdj' );
134+
135+
function log( str ) {
136+
t.notEqual( str, 'beep', 'logs a different string' );
137+
t.notEqual( str, 'boop', 'logs a different string' );
138+
t.end();
139+
}
140+
});

0 commit comments

Comments
 (0)