Visitar URL original
Following users by j-rewerts · Pull Request #572 · github-tools/github · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions lib/User.js
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
@@ -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