@@ -61,31 +61,75 @@ 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
+ createPullNotified , deferableCreate := notifierListener .RegisterChannel ("NotifyNewPullRequest" , 0 , & models.PullRequest {})
65
+ defer deferableCreate ()
66
+
67
+ mergePullNotified , deferableMerge := notifierListener .RegisterChannel ("NotifyMergePullRequest" , 0 , & models.PullRequest {})
68
+ defer deferableMerge ()
67
69
68
70
session := loginUser (t , "user1" )
69
71
testRepoFork (t , session , "user2" , "repo1" , "user1" , "repo1" )
70
72
testEditFile (t , session , "user1" , "repo1" , "master" , "README.md" , "Hello, World (Edited)\n " )
71
73
74
+ var prInterface interface {}
75
+
72
76
resp := testPullCreate (t , session , "user1" , "repo1" , "master" , "This is a pull title" )
77
+ select {
78
+ case prInterface = <- createPullNotified :
79
+ case <- time .After (500 * time .Millisecond ):
80
+ assert .Fail (t , "Took too long to notify!" )
81
+ }
82
+ pr := prInterface .(* models.PullRequest )
83
+ pr .LoadBaseRepo ()
84
+ pr .LoadHeadRepo ()
85
+ pr .BaseRepo .MustOwner ()
86
+ pr .HeadRepo .MustOwner ()
87
+
88
+ assert .EqualValues (t , "user1" , pr .HeadRepo .Owner .Name )
89
+ assert .EqualValues (t , "repo1" , pr .HeadRepo .Name )
90
+ assert .EqualValues (t , "user2" , pr .BaseRepo .Owner .Name )
91
+ assert .EqualValues (t , "repo1" , pr .BaseRepo .Name )
73
92
74
93
elem := strings .Split (test .RedirectURL (resp ), "/" )
75
94
assert .EqualValues (t , "pulls" , elem [3 ])
95
+
76
96
testPullMerge (t , session , elem [1 ], elem [2 ], elem [4 ], models .MergeStyleMerge )
77
97
78
- hookTasks , err = models .HookTasks (1 , 1 )
79
- assert .NoError (t , err )
80
- assert .Len (t , hookTasks , hookTasksLenBefore + 1 )
98
+ select {
99
+ case prInterface = <- mergePullNotified :
100
+ case <- time .After (500 * time .Millisecond ):
101
+ assert .Fail (t , "Took too long to notify!" )
102
+ }
103
+
104
+ pr = prInterface .(* models.PullRequest )
105
+ pr .LoadBaseRepo ()
106
+ pr .LoadHeadRepo ()
107
+ pr .BaseRepo .MustOwner ()
108
+ pr .HeadRepo .MustOwner ()
109
+
110
+ assert .EqualValues (t , "user1" , pr .HeadRepo .Owner .Name )
111
+ assert .EqualValues (t , "repo1" , pr .HeadRepo .Name )
112
+ assert .EqualValues (t , "user2" , pr .BaseRepo .Owner .Name )
113
+ assert .EqualValues (t , "repo1" , pr .BaseRepo .Name )
114
+
115
+ time .Sleep (100 * time .Millisecond )
116
+ select {
117
+ case prInterface = <- createPullNotified :
118
+ assert .Fail (t , "Should only have one pull create notification: %v" , prInterface )
119
+ default :
120
+ }
121
+ select {
122
+ case prInterface = <- mergePullNotified :
123
+ assert .Fail (t , "Should only have one pull merge notification: %v" , prInterface )
124
+ default :
125
+ }
81
126
})
82
127
}
83
128
84
129
func TestPullRebase (t * testing.T ) {
85
130
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 )
131
+ mergePullNotified , deferable := notifierListener .RegisterChannel ("NotifyMergePullRequest" , 0 , & models.PullRequest {})
132
+ defer deferable ()
89
133
90
134
session := loginUser (t , "user1" )
91
135
testRepoFork (t , session , "user2" , "repo1" , "user1" , "repo1" )
@@ -96,18 +140,18 @@ func TestPullRebase(t *testing.T) {
96
140
elem := strings .Split (test .RedirectURL (resp ), "/" )
97
141
assert .EqualValues (t , "pulls" , elem [3 ])
98
142
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 )
143
+ select {
144
+ case <- mergePullNotified :
145
+ case <- time .After (500 * time .Millisecond ):
146
+ assert .Fail (t , "Took too long to notify!" )
147
+ }
103
148
})
104
149
}
105
150
106
151
func TestPullRebaseMerge (t * testing.T ) {
107
152
onGiteaRun (t , func (t * testing.T , giteaURL * url.URL ) {
108
- hookTasks , err := models .HookTasks (1 , 1 ) //Retrieve previous hook number
109
- assert .NoError (t , err )
110
- hookTasksLenBefore := len (hookTasks )
153
+ mergePullNotified , deferable := notifierListener .RegisterChannel ("NotifyMergePullRequest" , 0 , & models.PullRequest {})
154
+ defer deferable ()
111
155
112
156
session := loginUser (t , "user1" )
113
157
testRepoFork (t , session , "user2" , "repo1" , "user1" , "repo1" )
@@ -119,17 +163,18 @@ func TestPullRebaseMerge(t *testing.T) {
119
163
assert .EqualValues (t , "pulls" , elem [3 ])
120
164
testPullMerge (t , session , elem [1 ], elem [2 ], elem [4 ], models .MergeStyleRebaseMerge )
121
165
122
- hookTasks , err = models .HookTasks (1 , 1 )
123
- assert .NoError (t , err )
124
- assert .Len (t , hookTasks , hookTasksLenBefore + 1 )
166
+ select {
167
+ case <- mergePullNotified :
168
+ case <- time .After (500 * time .Millisecond ):
169
+ assert .Fail (t , "Took too long to notify!" )
170
+ }
125
171
})
126
172
}
127
173
128
174
func TestPullSquash (t * testing.T ) {
129
175
onGiteaRun (t , func (t * testing.T , giteaURL * url.URL ) {
130
- hookTasks , err := models .HookTasks (1 , 1 ) //Retrieve previous hook number
131
- assert .NoError (t , err )
132
- hookTasksLenBefore := len (hookTasks )
176
+ mergePullNotified , deferable := notifierListener .RegisterChannel ("NotifyMergePullRequest" , 0 , & models.PullRequest {})
177
+ defer deferable ()
133
178
134
179
session := loginUser (t , "user1" )
135
180
testRepoFork (t , session , "user2" , "repo1" , "user1" , "repo1" )
@@ -142,9 +187,11 @@ func TestPullSquash(t *testing.T) {
142
187
assert .EqualValues (t , "pulls" , elem [3 ])
143
188
testPullMerge (t , session , elem [1 ], elem [2 ], elem [4 ], models .MergeStyleSquash )
144
189
145
- hookTasks , err = models .HookTasks (1 , 1 )
146
- assert .NoError (t , err )
147
- assert .Len (t , hookTasks , hookTasksLenBefore + 1 )
190
+ select {
191
+ case <- mergePullNotified :
192
+ case <- time .After (500 * time .Millisecond ):
193
+ assert .Fail (t , "Took too long to notify!" )
194
+ }
148
195
})
149
196
}
150
197
0 commit comments