Skip to content

Commit 8423e33

Browse files
committed
Refactor getpocket flow and tests
1 parent 51379c3 commit 8423e33

File tree

2 files changed

+39
-33
lines changed

2 files changed

+39
-33
lines changed

lib/flow/getpocket.js

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,48 +6,44 @@ var utils = require('../utils')
66

77

88
exports.step1 = function (provider, done) {
9-
request.post(provider.request_url, {
9+
var url = provider.request_url
10+
var options = {
1011
headers: {
11-
// 'x-accept': 'application/json'
1212
'x-accept': 'application/x-www-form-urlencoded'
1313
},
1414
form: {
1515
consumer_key: provider.key,
1616
redirect_uri: utils.redirect_uri(provider),
1717
state: provider.state
1818
}
19-
}, function (err, res, body) {
19+
}
20+
request.post(url, options, function (err, res, body) {
2021
var err = utils.error(err, res, body)
21-
if (err) {
22-
done(err)
23-
}
24-
else {
25-
var data = qs.parse(body)
26-
done(null, data)
27-
}
22+
done(err, qs.parse(body))
2823
})
2924
}
3025

3126
exports.step2 = function (provider, step1) {
27+
var url = provider.authorize_url
3228
var params = {
3329
request_token: step1.code,
3430
redirect_uri: utils.redirect_uri(provider)
3531
}
36-
var url = provider.authorize_url + '?' + qs.stringify(params)
37-
return url
32+
return url + '?' + qs.stringify(params)
3833
}
3934

4035
exports.step3 = function (provider, step1, done) {
41-
request.post(provider.access_url, {
36+
var url = provider.access_url
37+
var options = {
4238
headers: {
43-
// 'x-accept': 'application/json'
4439
'x-accept': 'application/x-www-form-urlencoded'
4540
},
4641
form: {
4742
consumer_key: provider.key,
4843
code: step1.code
4944
}
50-
}, function (err, res, body) {
45+
}
46+
request.post(url, options, function (err, res, body) {
5147
var err = utils.error(err, res, body)
5248
done(err, utils.toQuerystring(provider, body))
5349
})

test/flow/getpocket.js

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,49 +9,59 @@ var getpocket = require('../../lib/flow/getpocket')
99

1010
describe('getpocket', function () {
1111
function url (path) {
12-
var c = config.server
13-
return c.protocol + '://' + c.host + path
12+
return 'http://localhost:5000' + path
1413
}
1514

16-
var grant, app, server
17-
var config = {
18-
server: {protocol: 'http', host: 'localhost:5000', callback: '/'},
19-
getpocket: {}
20-
}
15+
var grant, server
2116

2217
before(function (done) {
18+
var config = {
19+
getpocket: {
20+
request_url: url('/request_url'),
21+
authorize_url: '/authorize_url',
22+
access_url: url('/access_url'),
23+
redirect_uri: '/redirect_uri',
24+
key: 'key',
25+
state: '123'
26+
}
27+
}
2328
grant = new Grant(config)
24-
app = express().use(grant)
25-
26-
grant.config.getpocket.request_url = url('/request_url')
27-
grant.config.getpocket.authorize_url = '/authorize_url'
28-
grant.config.getpocket.access_url = url('/access_url')
29+
var app = express().use(grant)
2930

3031
app.post('/request_url', function (req, res) {
31-
res.end(qs.stringify({some: 'data'}))
32+
req.pipe(res)
3233
})
3334
app.post('/access_url', function (req, res) {
34-
res.end(JSON.stringify({some: 'data'}))
35+
res.end(qs.stringify({access_token: 'token', some: 'data'}))
3536
})
3637
server = app.listen(5000, done)
3738
})
3839

3940
it('step1', function (done) {
4041
getpocket.step1(grant.config.getpocket, function (err, data) {
41-
t.deepEqual(data, {some: 'data'})
42+
t.deepEqual(data, {
43+
consumer_key: 'key',
44+
redirect_uri: '/redirect_uri',
45+
state: '123'
46+
})
4247
done()
4348
})
4449
})
4550

4651
it('step2', function () {
4752
var url = getpocket.step2(grant.config.getpocket, {code: 'code'})
48-
t.equal(url, '/authorize_url?request_token=code' +
49-
'&redirect_uri=http%3A%2F%2Flocalhost%3A5000%2Fconnect%2Fgetpocket%2Fcallback')
53+
t.deepEqual(qs.parse(url.replace('/authorize_url?', '')), {
54+
request_token: 'code',
55+
redirect_uri: '/redirect_uri'
56+
})
5057
})
5158

5259
it('step3', function (done) {
5360
getpocket.step3(grant.config.getpocket, {}, function (err, url) {
54-
t.equal(url, 'raw%5Bsome%5D=data')
61+
t.deepEqual(qs.parse(url), {
62+
access_token: 'token',
63+
raw: {access_token: 'token', some: 'data'}
64+
})
5565
done()
5666
})
5767
})

0 commit comments

Comments
 (0)