forked from fvdm/nodejs-searchitunes
-
Notifications
You must be signed in to change notification settings - Fork 0
/
test.js
77 lines (62 loc) · 1.75 KB
/
test.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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
/*
Name: openkvk - test.js
Description: Test script for openkvk.js
Source: https://github.com/fvdm/nodejs-openkvk
Feedback: https://github.com/fvdm/nodejs-openkvk/issues
License: Public Domain / Unlicense (see LICENSE file)
*/
var dotest = require ('dotest');
var app = require ('./');
// Setup
var timeout = process.env.testTimeout || 5000;
// Tests
dotest.add ('Module', function (test) {
test ()
.isFunction ('fail', 'exports', app)
.done ();
});
dotest.add ('Error: invalid params', function (test) {
app (null, function (err) {
test ()
.isError ('fail', 'err', err)
.isExactly ('fail', 'err.message', err && err.message, 'invalid params')
.done ();
});
});
dotest.add ('Error: no results', function (test) {
var params = {
entity: 'software',
country: 'NL',
term: null,
limit: 1,
price: 0
};
app (params, timeout, function (err) {
test ()
.isError ('fail', 'err', err)
.isExactly ('fail', 'err.message', err && err.message, 'no results')
.done ();
});
});
dotest.add ('Search', function (test) {
var params = {
entity: 'software',
country: 'NL',
term: 'github',
limit: 1,
price: 0
};
app (params, timeout, function (err, data) {
var item = data && data.results && data.results [0];
test (err)
.isObject ('fail', 'data', data)
.isExactly ('fail', 'data.resultCount', data && data.resultCount, 1)
.isArray ('fail', 'data.results', data && data.results)
.isNotEmpty ('fail', 'data.results', data && data.results)
.isObject ('fail', 'data.results[0]', item)
.isExactly ('fail', 'data.results[0].kind', item && item.kind, 'software')
.done ();
});
});
// Start the tests
dotest.run ();