Skip to content

Commit

Permalink
Merge pull request #554 from CodyGramlich/fix-follow-user
Browse files Browse the repository at this point in the history
Fix follow and unfollow user
  • Loading branch information
j-rewerts committed Jun 17, 2019
2 parents 1ba01ed + 92455bb commit b064242
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 7 deletions.
4 changes: 2 additions & 2 deletions lib/User.js
Expand Up @@ -187,7 +187,7 @@ class User extends Requestable {
* @return {Promise} - the promise for the http request
*/
follow(username, cb) {
return this._request('PUT', `/user/following/${this.__user}`, null, cb);
return this._request('PUT', `/user/following/${username}`, null, cb);
}

/**
Expand All @@ -198,7 +198,7 @@ class User extends Requestable {
* @return {Promise} - the promise for the http request
*/
unfollow(username, cb) {
return this._request('DELETE', `/user/following/${this.__user}`, null, cb);
return this._request('DELETE', `/user/following/${username}`, null, cb);
}

/**
Expand Down
55 changes: 50 additions & 5 deletions test/user.spec.js
@@ -1,3 +1,5 @@
import expect from 'must';

import Github from '../lib/GitHub';
import testUser from './fixtures/user.js';
import {assertSuccessful, assertArray} from './helpers/callbacks';
Expand Down Expand Up @@ -76,14 +78,57 @@ describe('User', function() {
user.listStarredGists(option, assertArray(done));
});

it('should follow user', function(done) {
user.follow('ingalls', assertSuccessful(done));
});
describe('following a user', function() {
const userToFollow = 'ingalls';

before(function() {
return user.unfollow(userToFollow);
})

it('should unfollow user', function(done) {
user.unfollow('ingalls', assertSuccessful(done));
it('should follow user', function(done) {
user.follow(userToFollow, assertSuccessful(done, function(err, resp) {
user._request('GET', `/user/following`, null, assertSuccessful(done, function(err, following) {
expect((following.some(user => user['login'] === userToFollow))).to.be.true();
done();
}));
}));
});
});

describe('following yourself', function() {
const userToFollow = testUser.USERNAME;

before(function() {
return user.unfollow(userToFollow);
})

it('should not list yourself as one of your followers', function(done) {
user.follow(userToFollow, assertSuccessful(done, function(err, resp) {
user._request('GET', `/user/following`, null, assertSuccessful(done, function(err, following) {
expect((following.some(user => user['login'] === userToFollow))).to.be.false();
done();
}));
}));
});
})

describe('unfollowing a user', function(done) {
const userToUnfollow = 'ingalls';

before(function() {
return user.follow(userToUnfollow);
})

it('should unfollow a user', function(done) {
user.unfollow(userToUnfollow, assertSuccessful(done, function(err, resp) {
user._request('GET', `/user/following`, null, assertSuccessful(done, function(err, following) {
expect((following.some(user => user['login'] === userToUnfollow))).to.be.false();
done();
}));
}));
});
})

it('should list the email addresses of the user', function(done) {
user.getEmails(assertSuccessful(done));
});
Expand Down

0 comments on commit b064242

Please sign in to comment.