Files
atlantis/server/controllers/status_controller_test.go
nitrocode 2b772541f5 Add version to /status endpoint (#2295)
* Add version to /status endpoint

* Add version to test

* Fix linting errors
2022-06-05 20:06:37 -07:00

86 lines
2.1 KiB
Go

package controllers_test
import (
"bytes"
"encoding/json"
"io"
"net/http"
"net/http/httptest"
"testing"
"github.com/runatlantis/atlantis/server/controllers"
"github.com/runatlantis/atlantis/server/events"
"github.com/runatlantis/atlantis/server/logging"
. "github.com/runatlantis/atlantis/testing"
)
func TestStatusController_Startup(t *testing.T) {
logger := logging.NewNoopLogger(t)
r, _ := http.NewRequest("GET", "/status", bytes.NewBuffer(nil))
w := httptest.NewRecorder()
dr := &events.Drainer{}
d := &controllers.StatusController{
Logger: logger,
Drainer: dr,
AtlantisVersion: "1.0.0",
}
d.Get(w, r)
var result controllers.StatusResponse
body, err := io.ReadAll(w.Result().Body)
Ok(t, err)
Equals(t, 200, w.Result().StatusCode)
err = json.Unmarshal(body, &result)
Ok(t, err)
Equals(t, false, result.ShuttingDown)
Equals(t, 0, result.InProgressOps)
}
func TestStatusController_InProgress(t *testing.T) {
logger := logging.NewNoopLogger(t)
r, _ := http.NewRequest("GET", "/status", bytes.NewBuffer(nil))
w := httptest.NewRecorder()
dr := &events.Drainer{}
dr.StartOp()
d := &controllers.StatusController{
Logger: logger,
Drainer: dr,
AtlantisVersion: "1.0.0",
}
d.Get(w, r)
var result controllers.StatusResponse
body, err := io.ReadAll(w.Result().Body)
Ok(t, err)
Equals(t, 200, w.Result().StatusCode)
err = json.Unmarshal(body, &result)
Ok(t, err)
Equals(t, false, result.ShuttingDown)
Equals(t, 1, result.InProgressOps)
}
func TestStatusController_Shutdown(t *testing.T) {
logger := logging.NewNoopLogger(t)
r, _ := http.NewRequest("GET", "/status", bytes.NewBuffer(nil))
w := httptest.NewRecorder()
dr := &events.Drainer{}
dr.ShutdownBlocking()
d := &controllers.StatusController{
Logger: logger,
Drainer: dr,
AtlantisVersion: "1.0.0",
}
d.Get(w, r)
var result controllers.StatusResponse
body, err := io.ReadAll(w.Result().Body)
Ok(t, err)
Equals(t, 200, w.Result().StatusCode)
err = json.Unmarshal(body, &result)
Ok(t, err)
Equals(t, true, result.ShuttingDown)
Equals(t, 0, result.InProgressOps)
}