diff --git a/.drone.yml b/.drone.yml new file mode 100755 index 0000000..8dee370 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,15 @@ +kind: pipeline +type: docker +name: default + +steps: + - name: test + image: golang:1.14.4 + commands: + - go build + - go test +trigger: + branch: + - master + event: + - push \ No newline at end of file diff --git a/main_test.go b/main_test.go new file mode 100755 index 0000000..74788be --- /dev/null +++ b/main_test.go @@ -0,0 +1,34 @@ +package main + +import ( + "io/ioutil" + "net/http" + "net/http/httptest" + "testing" +) + +func TestIndexHandler(t *testing.T) { + // TestIndexHandler tests the index + req, err := http.NewRequest("GET", "/", nil) + if err != nil { + t.Fatal(err) + } + rr := httptest.NewRecorder() + handler := http.HandlerFunc(index) + + handler.ServeHTTP(rr, req) + + if status := rr.Code; status != http.StatusOK { + t.Errorf("Index returned wrong status code: got %v want %v", + status, http.StatusOK) + } + + indexTemplate, err := ioutil.ReadFile("index.html") + if err != nil { + t.Fatal("Can't read index.html") + } + + if rr.Body.String() != string(indexTemplate) { + t.Fatal("Index response is not the same as index.html") + } +}