Skip to content

Commit

Permalink
Merge pull request #572 from github-tools/following-users
Browse files Browse the repository at this point in the history
Following users
  • Loading branch information
j-rewerts committed Jun 17, 2019
2 parents 1ba01ed + 1932d2d commit bf3a408
Show file tree
Hide file tree
Showing 3 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
2 changes: 1 addition & 1 deletion package.json
@@ -1,6 +1,6 @@
{
"name": "github-api",
"version": "3.2.1",
"version": "3.2.2",
"license": "BSD-3-Clause-Clear",
"description": "A higher-level wrapper around the Github API.",
"main": "dist/components/GitHub.js",
Expand Down
53 changes: 49 additions & 4 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,12 +78,55 @@ 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 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();
}));
}));
});
});

it('should unfollow user', function(done) {
user.unfollow('ingalls', assertSuccessful(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) {
Expand Down

0 comments on commit bf3a408

Please sign in to comment.