@@ -17,7 +17,9 @@ import (
1717 "go.uber.org/zap"
1818
1919 "github.com/gitploy-io/gitploy/internal/server/api/v1/repos/mock"
20- "github.com/golang/mock/gomock"
20+ "github.com/gitploy-io/gitploy/internal/server/global"
21+ "github.com/gitploy-io/gitploy/model/ent"
22+ gm "github.com/golang/mock/gomock"
2123)
2224
2325func init () {
@@ -26,30 +28,59 @@ func init() {
2628
2729func TestReviewAPI_UpdateMine (t * testing.T ) {
2830 t .Run ("Return 400 code when the status is invalid" , func (t * testing.T ) {
29- input := struct {
30- payload * ReviewPatchPayload
31- }{
32- payload : & ReviewPatchPayload {
33- Status : "INVALID" ,
34- },
35- }
36-
37- ctrl := gomock .NewController (t )
38- m := mock .NewMockInteractor (ctrl )
31+ ctrl := gm .NewController (t )
32+ s := & ReviewAPI {i : mock .NewMockInteractor (ctrl ), log : zap .L ()}
3933
4034 router := gin .New ()
41-
42- s := & ReviewAPI {i : m , log : zap .L ()}
4335 router .PATCH ("/deployments/:number/review" , s .UpdateMine )
4436
45- p , _ := json .Marshal (input .payload )
37+ p , _ := json .Marshal (& ReviewPatchPayload {
38+ Status : "INVALID" ,
39+ })
4640 req , _ := http .NewRequest ("PATCH" , "/deployments/1/review" , bytes .NewBuffer (p ))
4741 w := httptest .NewRecorder ()
48-
4942 router .ServeHTTP (w , req )
5043
5144 if w .Code != http .StatusBadRequest {
5245 t .Fatalf ("Code = %v, wanted %v" , w .Code , http .StatusBadRequest )
5346 }
5447 })
48+
49+ t .Run ("Return 200 when the update has succeeded." , func (t * testing.T ) {
50+ t .Log ("Start mocking:" )
51+ ctrl := gm .NewController (t )
52+ i := mock .NewMockInteractor (ctrl )
53+
54+ t .Log ("\t Find the user's review." )
55+ i .EXPECT ().
56+ FindDeploymentOfRepoByNumber (gm .Any (), gm .AssignableToTypeOf (& ent.Repo {}), gm .AssignableToTypeOf (1 )).
57+ Return (& ent.Deployment {}, nil )
58+
59+ i .EXPECT ().
60+ FindReviewOfUser (gm .Any (), gm .Any (), gm .AssignableToTypeOf (& ent.Deployment {})).
61+ Return (& ent.Review {}, nil )
62+
63+ t .Log ("\t Respond the review." )
64+ i .EXPECT ().
65+ RespondReview (gm .Any (), gm .AssignableToTypeOf (& ent.Review {})).
66+ Return (& ent.Review {}, nil )
67+
68+ s := & ReviewAPI {i : i , log : zap .L ()}
69+ router := gin .New ()
70+ router .PATCH ("/deployments/:number/review" , func (c * gin.Context ) {
71+ c .Set (global .KeyUser , & ent.User {})
72+ c .Set (KeyRepo , & ent.Repo {})
73+ }, s .UpdateMine )
74+
75+ p , _ := json .Marshal (& ReviewPatchPayload {
76+ Status : "approved" ,
77+ })
78+ req , _ := http .NewRequest ("PATCH" , "/deployments/1/review" , bytes .NewBuffer (p ))
79+ w := httptest .NewRecorder ()
80+ router .ServeHTTP (w , req )
81+
82+ if w .Code != http .StatusOK {
83+ t .Fatalf ("Code = %v, wanted %v" , w .Code , http .StatusOK )
84+ }
85+ })
5586}
0 commit comments