mirror of
https://git.vectorsigma.ru/public/atlantis.git
synced 2026-07-29 05:58:18 +00:00
The io/ioutil package has been deprecated as of Go 1.16, see https://golang.org/doc/go1.16#ioutil. This commit replaces the existing io/ioutil functions with their new definitions in io and os packages. Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
83 lines
2.0 KiB
Go
83 lines
2.0 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,
|
|
}
|
|
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,
|
|
}
|
|
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,
|
|
}
|
|
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)
|
|
}
|