-
-
Notifications
You must be signed in to change notification settings - Fork 290
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Cast id to string, port test cases to mocha.
- Loading branch information
1 parent
b113e80
commit 1a2450d
Showing
2 changed files
with
80 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
/* global describe, it, expect, before */ | ||
/* jshint expr: true */ | ||
|
||
var GitHubStrategy = require('../lib/strategy'); | ||
|
||
|
||
describe('Strategy#userProfile', function() { | ||
|
||
var strategy = new GitHubStrategy({ | ||
clientID: 'ABC123', | ||
clientSecret: 'secret' | ||
}, | ||
function() {}); | ||
|
||
// mock | ||
strategy._oauth2.get = function(url, accessToken, callback) { | ||
if (url != 'https://api.github.com/user') { return callback(new Error('wrong url argument')); } | ||
if (accessToken != 'token') { return callback(new Error('wrong token argument')); } | ||
|
||
var body = '{ "login": "octocat", "id": 1, "name": "monalisa octocat", "email": "[email protected]", "html_url": "https://github.com/octocat" }'; | ||
|
||
callback(null, body, undefined); | ||
}; | ||
|
||
describe('loading profile', function() { | ||
var profile; | ||
|
||
before(function(done) { | ||
strategy.userProfile('token', function(err, p) { | ||
if (err) { return done(err); } | ||
profile = p; | ||
done(); | ||
}); | ||
}); | ||
|
||
it('should parse profile', function() { | ||
expect(profile.provider).to.equal('github'); | ||
|
||
expect(profile.id).to.equal('1'); | ||
expect(profile.username).to.equal('octocat'); | ||
expect(profile.displayName).to.equal('monalisa octocat'); | ||
expect(profile.profileUrl).to.equal('https://github.com/octocat'); | ||
expect(profile.emails).to.have.length(1); | ||
expect(profile.emails[0].value).to.equal('[email protected]'); | ||
}); | ||
|
||
it('should set raw property', function() { | ||
expect(profile._raw).to.be.a('string'); | ||
}); | ||
|
||
it('should set json property', function() { | ||
expect(profile._json).to.be.an('object'); | ||
}); | ||
}); | ||
|
||
describe('encountering an error', function() { | ||
var err, profile; | ||
|
||
before(function(done) { | ||
strategy.userProfile('wrong-token', function(e, p) { | ||
err = e; | ||
profile = p; | ||
done(); | ||
}); | ||
}); | ||
|
||
it('should error', function() { | ||
expect(err).to.be.an.instanceOf(Error); | ||
expect(err.constructor.name).to.equal('InternalOAuthError'); | ||
expect(err.message).to.equal('Failed to fetch user profile'); | ||
}); | ||
|
||
it('should not load profile', function() { | ||
expect(profile).to.be.undefined; | ||
}); | ||
}); | ||
|
||
}); |