mirror of
https://git.vectorsigma.ru/public/atlantis.git
synced 2026-07-29 15:18:24 +00:00
86 lines
2.1 KiB
Go
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)
|
|
}
|