-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtest.js
42 lines (36 loc) · 1021 Bytes
/
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
'use strict';
var test = require('ava');
var Promise = require('bluebird');
var proxyquire = require('proxyquire');
test('required parameters', function(t) {
var fixture = {
origin: {},
destination: {}
};
var direction = require('./');
t.throws(direction, /Invalid parameters, options requires origin and destination property/);
t.throws(direction.bind(null, fixture), /Origin and destination properties only accept string/);
t.end();
});
test('correct url and query string passed', function(t) {
var fixture = {
origin: 'bukit damansara',
destination: 'klcc'
};
function got(url, options) {
t.same(url, 'https://maps.googleapis.com/maps/api/directions/json');
t.ok(options.query);
t.same(options.query.origin, fixture.origin);
t.same(options.query.destination, fixture.destination);
t.end();
return Promise.resolve({
body: {
status: 'OK'
}
});
}
var direction = proxyquire('./', {
got: got
});
direction(fixture);
});