Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/openstatusHQ/cli. OpenStatus CLI www.openstatus.dev
Something went wrong. Try again.
Go
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140package run_test
import ( "bytes" "io" "log" "net/http" "os" "testing"
"github.com/openstatusHQ/cli/internal/run")
type interceptorHTTPClient struct { f func(req *http.Request) (*http.Response, error)}
func (i *interceptorHTTPClient) RoundTrip(req *http.Request) (*http.Response, error) { return i.f(req)}
func (i *interceptorHTTPClient) GetHTTPClient() *http.Client { return &http.Client{ Transport: i, }}
func Test_run(t *testing.T) { t.Parallel()
t.Run("No Id should return error", func(t *testing.T) { // body := `{ // "name": "openstatus", // "slug": "openstatus", // "plan": "pro" // }` // r := io.NopCloser(bytes.NewReader([]byte(body)))
interceptor := &interceptorHTTPClient{ f: func(req *http.Request) (*http.Response, error) { return &http.Response{ StatusCode: http.StatusOK, // Body: r, }, nil }, }
var bf bytes.Buffer log.SetOutput(&bf) t.Cleanup(func() { log.SetOutput(os.Stdout) }) err := run.MonitorTrigger(interceptor.GetHTTPClient(), "", "") if err == nil { t.Error(err) t.Errorf("Monitor Trigger should return error") } }) t.Run("Successfully run http reponse", func(t *testing.T) { body := `[ { "jobType": "http", "status": 200, "latency": 318, "region": "iad", "timestamp": 1730296465106, "timing": { "dnsStart": 1730296465106, "dnsDone": 1730296465109, "connectStart": 1730296465109, "connectDone": 1730296465110, "tlsHandshakeStart": 1730296465110, "tlsHandshakeDone": 1730296465116, "firstByteStart": 1730296465117, "firstByteDone": 1730296465425, "transferStart": 1730296465425, "transferDone": 1730296465425 }, "body": "{\"ping\":\"pong\"}" }]` r := io.NopCloser(bytes.NewReader([]byte(body)))
interceptor := &interceptorHTTPClient{ f: func(req *http.Request) (*http.Response, error) { return &http.Response{ StatusCode: http.StatusOK, Body: r, }, nil }, }
var bf bytes.Buffer log.SetOutput(&bf) t.Cleanup(func() { log.SetOutput(os.Stdout) }) err := run.MonitorTrigger(interceptor.GetHTTPClient(), "", "1") if err != nil { t.Error(err) t.Errorf("Monitor Trigger should return error") } }) t.Run("Successfully run tcp reponse", func(t *testing.T) { body := `[ { "jobType": "tcp", "latency": 3, "region": "ams", "timestamp": 1730990324626, "timing": { "tcpStart": 1730990324626, "tcpDone": 1730990324629 }, "errorMessage": "" }]`
r := io.NopCloser(bytes.NewReader([]byte(body)))
interceptor := &interceptorHTTPClient{ f: func(req *http.Request) (*http.Response, error) { return &http.Response{ StatusCode: http.StatusOK, Body: r, }, nil }, }
var bf bytes.Buffer log.SetOutput(&bf) t.Cleanup(func() { log.SetOutput(os.Stdout) }) err := run.MonitorTrigger(interceptor.GetHTTPClient(), "", "1") if err != nil { t.Error(err) t.Errorf("Monitor Trigger should return error") } })}