diff options
Diffstat (limited to 'workhorse/internal/staticpages/deploy_page_test.go')
-rw-r--r-- | workhorse/internal/staticpages/deploy_page_test.go | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/workhorse/internal/staticpages/deploy_page_test.go b/workhorse/internal/staticpages/deploy_page_test.go new file mode 100644 index 00000000000..4b081e73a97 --- /dev/null +++ b/workhorse/internal/staticpages/deploy_page_test.go @@ -0,0 +1,59 @@ +package staticpages + +import ( + "io/ioutil" + "net/http" + "net/http/httptest" + "os" + "path/filepath" + "testing" + + "gitlab.com/gitlab-org/gitlab-workhorse/internal/testhelper" + + "github.com/stretchr/testify/require" +) + +func TestIfNoDeployPageExist(t *testing.T) { + dir, err := ioutil.TempDir("", "deploy") + if err != nil { + t.Fatal(err) + } + defer os.RemoveAll(dir) + + w := httptest.NewRecorder() + + executed := false + st := &Static{dir} + st.DeployPage(http.HandlerFunc(func(_ http.ResponseWriter, _ *http.Request) { + executed = true + })).ServeHTTP(w, nil) + if !executed { + t.Error("The handler should get executed") + } +} + +func TestIfDeployPageExist(t *testing.T) { + dir, err := ioutil.TempDir("", "deploy") + if err != nil { + t.Fatal(err) + } + defer os.RemoveAll(dir) + + deployPage := "DEPLOY" + ioutil.WriteFile(filepath.Join(dir, "index.html"), []byte(deployPage), 0600) + + w := httptest.NewRecorder() + + executed := false + st := &Static{dir} + st.DeployPage(http.HandlerFunc(func(_ http.ResponseWriter, _ *http.Request) { + executed = true + })).ServeHTTP(w, nil) + if executed { + t.Error("The handler should not get executed") + } + w.Flush() + + require.Equal(t, 200, w.Code) + testhelper.RequireResponseBody(t, w, deployPage) +} |