@@ -7,8 +7,6 @@ import {assertSuccessful} from './helpers/callbacks';
7
7
describe ( 'Issue' , function ( ) {
8
8
let github ;
9
9
let remoteIssues ;
10
- let remoteIssueId ;
11
- let remoteIssueCommentId ;
12
10
13
11
before ( function ( ) {
14
12
github = new Github ( {
@@ -21,6 +19,9 @@ describe('Issue', function() {
21
19
} ) ;
22
20
23
21
describe ( 'reading' , function ( ) {
22
+ let remoteIssueId ;
23
+ let milestoneId ;
24
+
24
25
it ( 'should list issues' , function ( done ) {
25
26
remoteIssues . listIssues ( { } , assertSuccessful ( done , function ( err , issues ) {
26
27
expect ( issues ) . to . be . an . array ( ) ;
@@ -37,9 +38,31 @@ describe('Issue', function() {
37
38
done ( ) ;
38
39
} ) ) ;
39
40
} ) ;
41
+
42
+ it ( 'should get all milestones' , function ( done ) {
43
+ remoteIssues . listMilestones ( )
44
+ . then ( ( { data : milestones } ) => {
45
+ expect ( milestones ) . to . be . an . array ( ) ;
46
+ milestoneId = milestones [ 0 ] . number ;
47
+
48
+ done ( ) ;
49
+ } ) . catch ( done ) ;
50
+ } ) ;
51
+
52
+ it ( 'should get a single milestone' , function ( done ) {
53
+ remoteIssues . getMilestone ( milestoneId )
54
+ . then ( ( { data : milestone } ) => {
55
+ expect ( milestone ) . to . have . own ( 'title' , 'Default Milestone' ) ;
56
+ done ( ) ;
57
+ } ) . catch ( done ) ;
58
+ } ) ;
40
59
} ) ;
41
60
42
- describe ( 'creating/modifiying/editing/deleting' , function ( ) {
61
+ describe ( 'creating/editing/deleting' , function ( ) {
62
+ let createdIssueId ;
63
+ let issueCommentId ;
64
+ let createdMilestoneId ;
65
+
43
66
// 200ms between tests so that Github has a chance to settle
44
67
beforeEach ( function ( done ) {
45
68
setTimeout ( done , 200 ) ;
@@ -52,6 +75,7 @@ describe('Issue', function() {
52
75
} ;
53
76
54
77
remoteIssues . createIssue ( newIssue , assertSuccessful ( done , function ( err , issue ) {
78
+ createdIssueId = issue . number ;
55
79
expect ( issue ) . to . have . own ( 'url' ) ;
56
80
expect ( issue ) . to . have . own ( 'title' , newIssue . title ) ;
57
81
expect ( issue ) . to . have . own ( 'body' , newIssue . body ) ;
@@ -60,56 +84,94 @@ describe('Issue', function() {
60
84
} ) ) ;
61
85
} ) ;
62
86
87
+ it ( 'should edit issue' , function ( done ) {
88
+ const newProps = {
89
+ title : 'Edited title' ,
90
+ state : 'closed'
91
+ } ;
92
+
93
+ remoteIssues . editIssue ( createdIssueId , newProps , assertSuccessful ( done , function ( err , issue ) {
94
+ expect ( issue ) . to . have . own ( 'title' , newProps . title ) ;
95
+
96
+ done ( ) ;
97
+ } ) ) ;
98
+ } ) ;
99
+
63
100
it ( 'should post issue comment' , function ( done ) {
64
- remoteIssues . createIssueComment ( remoteIssueId , 'Comment test' , assertSuccessful ( done , function ( err , issue ) {
101
+ remoteIssues . createIssueComment ( createdIssueId , 'Comment test' , assertSuccessful ( done , function ( err , issue ) {
65
102
expect ( issue ) . to . have . own ( 'body' , 'Comment test' ) ;
66
103
67
104
done ( ) ;
68
105
} ) ) ;
69
106
} ) ;
70
107
71
108
it ( 'should list issue comments' , function ( done ) {
72
- remoteIssues . listIssueComments ( remoteIssueId , assertSuccessful ( done , function ( err , comments ) {
109
+ remoteIssues . listIssueComments ( createdIssueId , assertSuccessful ( done , function ( err , comments ) {
73
110
expect ( comments ) . to . be . an . array ( ) ;
74
111
expect ( comments [ 0 ] ) . to . have . own ( 'body' , 'Comment test' ) ;
75
- remoteIssueCommentId = comments [ 0 ] . id
112
+ issueCommentId = comments [ 0 ] . id ;
76
113
done ( ) ;
77
114
} ) ) ;
78
115
} ) ;
79
116
80
117
it ( 'should get a single issue comment' , function ( done ) {
81
- remoteIssues . getIssueComment ( remoteIssueCommentId , assertSuccessful ( done , function ( err , comment ) {
118
+ remoteIssues . getIssueComment ( issueCommentId , assertSuccessful ( done , function ( err , comment ) {
82
119
expect ( comment ) . to . have . own ( 'body' , 'Comment test' ) ;
83
120
done ( ) ;
84
121
} ) ) ;
85
122
} ) ;
86
123
87
124
it ( 'should edit issue comment' , function ( done ) {
88
- remoteIssues . editIssueComment ( remoteIssueCommentId , 'Comment test edited' , assertSuccessful ( done , function ( err , comment ) {
89
- expect ( comment ) . to . have . own ( 'body' , 'Comment test edited' ) ;
125
+ remoteIssues . editIssueComment ( issueCommentId , 'Comment test edited' ,
126
+ assertSuccessful ( done , function ( err , comment ) {
127
+ expect ( comment ) . to . have . own ( 'body' , 'Comment test edited' ) ;
90
128
91
- done ( ) ;
92
- } ) ) ;
129
+ done ( ) ;
130
+ } ) ) ;
93
131
} ) ;
94
132
95
133
it ( 'should delete issue comment' , function ( done ) {
96
- remoteIssues . deleteIssueComment ( remoteIssueCommentId , assertSuccessful ( done , function ( err , response ) {
134
+ remoteIssues . deleteIssueComment ( issueCommentId , assertSuccessful ( done , function ( err , response ) {
97
135
expect ( response ) . to . be . true ;
98
136
99
137
done ( ) ;
100
138
} ) ) ;
101
139
} ) ;
102
140
103
- it ( 'should edit issues title' , function ( done ) {
104
- const newProps = {
105
- title : 'Edited title'
141
+ it ( 'should create a milestone' , function ( done ) {
142
+ let milestone = {
143
+ title : 'v42' ,
144
+ description : 'The ultimate version'
106
145
} ;
107
146
108
- remoteIssues . editIssue ( remoteIssueId , newProps , assertSuccessful ( done , function ( err , issue ) {
109
- expect ( issue ) . to . have . own ( 'title' , newProps . title ) ;
147
+ remoteIssues . createMilestone ( milestone )
148
+ . then ( ( { data : createdMilestone } ) => {
149
+ expect ( createdMilestone ) . to . have . own ( 'number' ) ;
150
+ expect ( createdMilestone ) . to . have . own ( 'title' , milestone . title ) ;
110
151
111
- done ( ) ;
112
- } ) ) ;
152
+ createdMilestoneId = createdMilestone . number ;
153
+ done ( ) ;
154
+ } ) . catch ( done ) ;
155
+ } ) ;
156
+ it ( 'should update a milestone' , function ( done ) {
157
+ let milestone = {
158
+ description : 'Version 6 * 7'
159
+ } ;
160
+
161
+ remoteIssues . editMilestone ( createdMilestoneId , milestone )
162
+ . then ( ( { data : createdMilestone } ) => {
163
+ expect ( createdMilestone ) . to . have . own ( 'number' , createdMilestoneId ) ;
164
+ expect ( createdMilestone ) . to . have . own ( 'describe' , milestone . description ) ;
165
+
166
+ done ( ) ;
167
+ } ) . catch ( done ) ;
168
+ } ) ;
169
+ it ( 'should delete a milestone' , function ( done ) {
170
+ remoteIssues . deleteMilestone ( createdMilestoneId )
171
+ . then ( ( { status} ) => {
172
+ expect ( status ) . to . equal ( 204 ) ;
173
+ done ( ) ;
174
+ } ) . catch ( done ) ;
113
175
} ) ;
114
176
} ) ;
115
177
} ) ;
0 commit comments