@@ -61,9 +61,12 @@ func testPullCleanUp(t *testing.T, session *TestSession, user, repo, pullnum str
61
61
62
62
func TestPullMerge (t * testing.T ) {
63
63
onGiteaRun (t , func (t * testing.T , giteaURL * url.URL ) {
64
- hookTasks , err := models .HookTasks (1 , 1 ) //Retrieve previous hook number
65
- assert .NoError (t , err )
66
- hookTasksLenBefore := len (hookTasks )
64
+ mergePullNotified := make (chan interface {}, 10 )
65
+ deferable := notifierListener .RegisterChannel ("NotifyMergePullRequest" , mergePullNotified , 0 , & models.PullRequest {})
66
+ defer func () {
67
+ deferable ()
68
+ close (mergePullNotified )
69
+ }()
67
70
68
71
session := loginUser (t , "user1" )
69
72
testRepoFork (t , session , "user2" , "repo1" , "user1" , "repo1" )
@@ -73,19 +76,44 @@ func TestPullMerge(t *testing.T) {
73
76
74
77
elem := strings .Split (test .RedirectURL (resp ), "/" )
75
78
assert .EqualValues (t , "pulls" , elem [3 ])
79
+
76
80
testPullMerge (t , session , elem [1 ], elem [2 ], elem [4 ], models .MergeStyleMerge )
77
81
78
- hookTasks , err = models .HookTasks (1 , 1 )
79
- assert .NoError (t , err )
80
- assert .Len (t , hookTasks , hookTasksLenBefore + 1 )
82
+ var prInterface interface {}
83
+ select {
84
+ case prInterface = <- mergePullNotified :
85
+ case <- time .After (500 * time .Millisecond ):
86
+ assert .Fail (t , "Took too long to notify!" )
87
+ }
88
+
89
+ pr := prInterface .(* models.PullRequest )
90
+ pr .LoadBaseRepo ()
91
+ pr .LoadHeadRepo ()
92
+ pr .BaseRepo .MustOwner ()
93
+ pr .HeadRepo .MustOwner ()
94
+
95
+ assert .EqualValues (t , "user1" , pr .HeadRepo .Owner .Name )
96
+ assert .EqualValues (t , "repo1" , pr .HeadRepo .Name )
97
+ assert .EqualValues (t , "user2" , pr .BaseRepo .Owner .Name )
98
+ assert .EqualValues (t , "repo1" , pr .BaseRepo .Name )
99
+
100
+ time .Sleep (100 * time .Millisecond )
101
+ select {
102
+ case prInterface = <- mergePullNotified :
103
+ assert .Fail (t , "Should only have one pull create notification: %v" , prInterface )
104
+ default :
105
+ }
81
106
})
82
107
}
83
108
84
109
func TestPullRebase (t * testing.T ) {
85
110
onGiteaRun (t , func (t * testing.T , giteaURL * url.URL ) {
86
- hookTasks , err := models .HookTasks (1 , 1 ) //Retrieve previous hook number
87
- assert .NoError (t , err )
88
- hookTasksLenBefore := len (hookTasks )
111
+ mergePullNotified := make (chan interface {}, 10 )
112
+ deferable := notifierListener .RegisterChannel ("NotifyMergePullRequest" , mergePullNotified , 0 , & models.PullRequest {})
113
+ defer func () {
114
+ deferable ()
115
+ close (mergePullNotified )
116
+ }()
89
117
90
118
session := loginUser (t , "user1" )
91
119
testRepoFork (t , session , "user2" , "repo1" , "user1" , "repo1" )
@@ -96,21 +124,22 @@ func TestPullRebase(t *testing.T) {
96
124
elem := strings .Split (test .RedirectURL (resp ), "/" )
97
125
assert .EqualValues (t , "pulls" , elem [3 ])
98
126
testPullMerge (t , session , elem [1 ], elem [2 ], elem [4 ], models .MergeStyleRebase )
99
-
100
- hookTasks , err = models .HookTasks (1 , 1 )
101
- assert .NoError (t , err )
102
- assert .Len (t , hookTasks , hookTasksLenBefore + 1 )
127
+ select {
128
+ case <- mergePullNotified :
129
+ case <- time .After (500 * time .Millisecond ):
130
+ assert .Fail (t , "Took too long to notify!" )
131
+ }
103
132
})
104
133
}
105
134
106
135
func TestPullRebaseMerge (t * testing.T ) {
107
136
onGiteaRun (t , func (t * testing.T , giteaURL * url.URL ) {
108
- defer prepareTestEnv ( t )( )
109
-
110
- hookTasks , err := models . HookTasks ( 1 , 1 ) //Retrieve previous hook number
111
- assert . NoError ( t , err )
112
- hookTasksLenBefore := len ( hookTasks )
113
-
137
+ mergePullNotified := make ( chan interface {}, 10 )
138
+ deferable := notifierListener . RegisterChannel ( "NotifyMergePullRequest" , mergePullNotified , 0 , & models. PullRequest {})
139
+ defer func () {
140
+ deferable ( )
141
+ close ( mergePullNotified )
142
+ }()
114
143
session := loginUser (t , "user1" )
115
144
testRepoFork (t , session , "user2" , "repo1" , "user1" , "repo1" )
116
145
testEditFile (t , session , "user1" , "repo1" , "master" , "README.md" , "Hello, World (Edited)\n " )
@@ -121,19 +150,22 @@ func TestPullRebaseMerge(t *testing.T) {
121
150
assert .EqualValues (t , "pulls" , elem [3 ])
122
151
testPullMerge (t , session , elem [1 ], elem [2 ], elem [4 ], models .MergeStyleRebaseMerge )
123
152
124
- hookTasks , err = models .HookTasks (1 , 1 )
125
- assert .NoError (t , err )
126
- assert .Len (t , hookTasks , hookTasksLenBefore + 1 )
153
+ select {
154
+ case <- mergePullNotified :
155
+ case <- time .After (500 * time .Millisecond ):
156
+ assert .Fail (t , "Took too long to notify!" )
157
+ }
127
158
})
128
159
}
129
160
130
161
func TestPullSquash (t * testing.T ) {
131
162
onGiteaRun (t , func (t * testing.T , giteaURL * url.URL ) {
132
- defer prepareTestEnv (t )()
133
-
134
- hookTasks , err := models .HookTasks (1 , 1 ) //Retrieve previous hook number
135
- assert .NoError (t , err )
136
- hookTasksLenBefore := len (hookTasks )
163
+ mergePullNotified := make (chan interface {}, 10 )
164
+ deferable := notifierListener .RegisterChannel ("NotifyMergePullRequest" , mergePullNotified , 0 , & models.PullRequest {})
165
+ defer func () {
166
+ deferable ()
167
+ close (mergePullNotified )
168
+ }()
137
169
138
170
session := loginUser (t , "user1" )
139
171
testRepoFork (t , session , "user2" , "repo1" , "user1" , "repo1" )
@@ -146,15 +178,16 @@ func TestPullSquash(t *testing.T) {
146
178
assert .EqualValues (t , "pulls" , elem [3 ])
147
179
testPullMerge (t , session , elem [1 ], elem [2 ], elem [4 ], models .MergeStyleSquash )
148
180
149
- hookTasks , err = models .HookTasks (1 , 1 )
150
- assert .NoError (t , err )
151
- assert .Len (t , hookTasks , hookTasksLenBefore + 1 )
181
+ select {
182
+ case <- mergePullNotified :
183
+ case <- time .After (500 * time .Millisecond ):
184
+ assert .Fail (t , "Took too long to notify!" )
185
+ }
152
186
})
153
187
}
154
188
155
189
func TestPullCleanUpAfterMerge (t * testing.T ) {
156
190
onGiteaRun (t , func (t * testing.T , giteaURL * url.URL ) {
157
- defer prepareTestEnv (t )()
158
191
session := loginUser (t , "user1" )
159
192
testRepoFork (t , session , "user2" , "repo1" , "user1" , "repo1" )
160
193
testEditFileToNewBranch (t , session , "user1" , "repo1" , "master" , "feature/test" , "README.md" , "Hello, World (Edited)\n " )
@@ -190,7 +223,6 @@ func TestPullCleanUpAfterMerge(t *testing.T) {
190
223
191
224
func TestCantMergeWorkInProgress (t * testing.T ) {
192
225
onGiteaRun (t , func (t * testing.T , giteaURL * url.URL ) {
193
- defer prepareTestEnv (t )()
194
226
session := loginUser (t , "user1" )
195
227
testRepoFork (t , session , "user2" , "repo1" , "user1" , "repo1" )
196
228
testEditFile (t , session , "user1" , "repo1" , "master" , "README.md" , "Hello, World (Edited)\n " )
@@ -212,7 +244,6 @@ func TestCantMergeWorkInProgress(t *testing.T) {
212
244
213
245
func TestCantMergeConflict (t * testing.T ) {
214
246
onGiteaRun (t , func (t * testing.T , giteaURL * url.URL ) {
215
- defer prepareTestEnv (t )()
216
247
session := loginUser (t , "user1" )
217
248
testRepoFork (t , session , "user2" , "repo1" , "user1" , "repo1" )
218
249
testEditFileToNewBranch (t , session , "user1" , "repo1" , "master" , "conflict" , "README.md" , "Hello, World (Edited Once)\n " )
@@ -258,7 +289,6 @@ func TestCantMergeConflict(t *testing.T) {
258
289
259
290
func TestCantMergeUnrelated (t * testing.T ) {
260
291
onGiteaRun (t , func (t * testing.T , giteaURL * url.URL ) {
261
- defer prepareTestEnv (t )()
262
292
session := loginUser (t , "user1" )
263
293
testRepoFork (t , session , "user2" , "repo1" , "user1" , "repo1" )
264
294
testEditFileToNewBranch (t , session , "user1" , "repo1" , "master" , "base" , "README.md" , "Hello, World (Edited Twice)\n " )
0 commit comments