forked from github-tools/github
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathissue.spec.js
More file actions
115 lines (92 loc) · 3.52 KB
/
issue.spec.js
File metadata and controls
115 lines (92 loc) · 3.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
import expect from 'must';
import Github from '../lib/GitHub';
import testUser from './fixtures/user.json';
import {assertSuccessful} from './helpers/callbacks';
describe('Issue', function() {
let github;
let remoteIssues;
let remoteIssueId;
let remoteIssueCommentId;
before(function() {
github = new Github({
username: testUser.USERNAME,
password: testUser.PASSWORD,
auth: 'basic'
});
remoteIssues = github.getIssues(testUser.USERNAME, 'TestRepo');
});
describe('reading', function() {
it('should list issues', function(done) {
remoteIssues.listIssues({}, assertSuccessful(done, function(err, issues) {
expect(issues).to.be.an.array();
remoteIssueId = issues[0].number;
done();
}));
});
it('should get issue', function(done) {
remoteIssues.getIssue(remoteIssueId, assertSuccessful(done, function(err, issue) {
expect(issue).to.have.own('number', remoteIssueId);
done();
}));
});
});
describe('creating/modifiying/editing/deleting', function() {
// 200ms between tests so that Github has a chance to settle
beforeEach(function(done) {
setTimeout(done, 200);
});
it('should create issue', function(done) {
const newIssue = {
title: 'New issue',
body: 'New issue body'
};
remoteIssues.createIssue(newIssue, assertSuccessful(done, function(err, issue) {
expect(issue).to.have.own('url');
expect(issue).to.have.own('title', newIssue.title);
expect(issue).to.have.own('body', newIssue.body);
done();
}));
});
it('should post issue comment', function(done) {
remoteIssues.createIssueComment(remoteIssueId, 'Comment test', assertSuccessful(done, function(err, issue) {
expect(issue).to.have.own('body', 'Comment test');
done();
}));
});
it('should list issue comments', function(done) {
remoteIssues.listIssueComments(remoteIssueId, assertSuccessful(done, function(err, comments) {
expect(comments).to.be.an.array();
expect(comments[0]).to.have.own('body', 'Comment test');
remoteIssueCommentId = comments[0].id
done();
}));
});
it('should get a single issue comment', function(done) {
remoteIssues.getIssueComment(remoteIssueCommentId, assertSuccessful(done, function(err, comment) {
expect(comment).to.have.own('body', 'Comment test');
done();
}));
});
it('should edit issue comment', function(done) {
remoteIssues.editIssueComment(remoteIssueCommentId, 'Comment test edited', assertSuccessful(done, function(err, comment) {
expect(comment).to.have.own('body', 'Comment test edited');
done();
}));
});
it('should delete issue comment', function(done) {
remoteIssues.deleteIssueComment(remoteIssueCommentId, assertSuccessful(done, function(err, response) {
expect(response).to.be.true;
done();
}));
});
it('should edit issues title', function(done) {
const newProps = {
title: 'Edited title'
};
remoteIssues.editIssue(remoteIssueId, newProps, assertSuccessful(done, function(err, issue) {
expect(issue).to.have.own('title', newProps.title);
done();
}));
});
});
});