Skip to content

Commit fd1fb5a

Browse files
author
Fabio Stabile
committed
Fix tests for failed deploy pipeline
1 parent 7988b9e commit fd1fb5a

File tree

1 file changed

+34
-7
lines changed

1 file changed

+34
-7
lines changed

internal/cmd/deploy/trigger_test.go

Lines changed: 34 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@ func TestDeploy(t *testing.T) {
4141
server: testTriggerServer(t),
4242
projectID: "correct",
4343
},
44+
"pipeline failed": {
45+
server: testFailedTriggerServer(t),
46+
projectID: "failed",
47+
expectErr: true,
48+
},
4449
"pipeline fails": {
4550
server: testTriggerServer(t),
4651
projectID: "fails-bad-request",
@@ -97,13 +102,6 @@ func testTriggerServer(t *testing.T) *httptest.Server {
97102
})
98103
require.NoError(t, err)
99104
w.Write(data)
100-
case r.Method == http.MethodGet && r.URL.Path == fmt.Sprintf(pipelineStatusEndpointTemplate, "failed", 1) && r.URL.Query().Get("environment") == "environmentName":
101-
data, err := resources.EncodeResourceToJSON(&resources.PipelineStatus{
102-
ID: 1,
103-
Status: "failed",
104-
})
105-
require.NoError(t, err)
106-
w.Write(data)
107105
case r.Method == http.MethodPost && r.URL.Path == fmt.Sprintf(deployProjectEndpointTemplate, "fails-bad-request"):
108106
respBody := `{"error": "Bad Request","message":"some bad request"}`
109107

@@ -122,3 +120,32 @@ func testTriggerServer(t *testing.T) *httptest.Server {
122120

123121
return server
124122
}
123+
124+
func testFailedTriggerServer(t *testing.T) *httptest.Server {
125+
t.Helper()
126+
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
127+
t.Helper()
128+
switch {
129+
case r.Method == http.MethodPost && r.URL.Path == fmt.Sprintf(deployProjectEndpointTemplate, "failed"):
130+
data, err := resources.EncodeResourceToJSON(&resources.DeployProject{
131+
ID: 1,
132+
URL: "http://example.com",
133+
})
134+
135+
require.NoError(t, err)
136+
w.Write(data)
137+
case r.Method == http.MethodGet && r.URL.Path == fmt.Sprintf(pipelineStatusEndpointTemplate, "failed", 1) && r.URL.Query().Get("environment") == "environmentName":
138+
data, err := resources.EncodeResourceToJSON(&resources.PipelineStatus{
139+
ID: 1,
140+
Status: "failed",
141+
})
142+
require.NoError(t, err)
143+
w.Write(data)
144+
default:
145+
w.WriteHeader(http.StatusNotFound)
146+
require.FailNowf(t, "unknown http request", "request method: %s request URL: %s", r.Method, r.URL)
147+
}
148+
}))
149+
150+
return server
151+
}

0 commit comments

Comments
 (0)