diff --git a/mock/server/build.go b/mock/server/build.go index 3edc55bf0..9bd02a07e 100644 --- a/mock/server/build.go +++ b/mock/server/build.go @@ -301,6 +301,23 @@ func cancelBuild(c *gin.Context) { c.JSON(http.StatusOK, BuildResp) } +// approveBuild has a param :build and returns mock JSON for a http POST. +// +// Pass "0" to :build to test receiving a http 403 response. +func approveBuild(c *gin.Context) { + b := c.Param("build") + + if strings.EqualFold(b, "0") { + msg := "user does not have admin permissions for the repo" + + c.AbortWithStatusJSON(http.StatusForbidden, types.Error{Message: &msg}) + + return + } + + c.JSON(http.StatusOK, fmt.Sprintf("Successfully approved build %s", b)) +} + // buildQueue has a param :after returns mock JSON for a http GET. // // Pass "0" to :after to test receiving a http 200 response with no builds. diff --git a/mock/server/server.go b/mock/server/server.go index 699062868..0b7dcff79 100644 --- a/mock/server/server.go +++ b/mock/server/server.go @@ -34,6 +34,7 @@ func FakeHandler() http.Handler { e.GET("/api/v1/repos/:org/:repo/builds/:build", getBuild) e.POST("/api/v1/repos/:org/:repo/builds/:build", restartBuild) e.DELETE("/api/v1/repos/:org/:repo/builds/:build/cancel", cancelBuild) + e.POST("/api/v1/repos/:org/:repo/builds/:build/approve", approveBuild) e.GET("/api/v1/repos/:org/:repo/builds/:build/logs", getLogs) e.GET("/api/v1/repos/:org/:repo/builds", getBuilds) e.POST("/api/v1/repos/:org/:repo/builds", addBuild)