Files
sablier/e2e/e2e_test.go
2022-10-06 23:50:21 -04:00

90 lines
2.0 KiB
Go

//go:build e2e
// +build e2e
package e2e
import (
"net/http"
"testing"
"time"
"github.com/gavv/httpexpect/v2"
)
var waitingTime = 10 * time.Second
func Test_Dynamic(t *testing.T) {
e := httpexpect.New(t, "http://localhost:8080/dynamic/")
e.GET("/whoami").
Expect().
Status(http.StatusAccepted).
Body().
Contains(`<h2 class="headline" id="headline">Dynamic Whoami is loading...</h2>`).
Contains(`Your instance will shutdown automatically after 1 minutes of inactivity.`)
time.Sleep(waitingTime)
e.GET("/whoami").
Expect().
Status(http.StatusOK).
Body().Contains(`Host: localhost:8080`)
}
func Test_Blocking(t *testing.T) {
e := httpexpect.New(t, "http://localhost:8080/blocking/")
e.GET("/whoami").
Expect().
Status(http.StatusOK).
Body().Contains(`Host: localhost:8080`)
}
func Test_Multiple(t *testing.T) {
e := httpexpect.New(t, "http://localhost:8080/multiple/")
e.GET("/whoami").
Expect().
Status(http.StatusAccepted).
Body().
Contains(`<h2 class="headline" id="headline">Multiple Whoami is loading...</h2>`).
Contains(`Your instance will shutdown automatically after 1 minutes of inactivity.`)
time.Sleep(waitingTime)
e.GET("/whoami").
Expect().
Status(http.StatusOK).
Body().Contains(`Host: localhost:8080`)
e.GET("/nginx").
Expect().
Status(http.StatusNotFound).
Body().Contains(`nginx/1.23.1`)
}
func Test_Healthy(t *testing.T) {
e := httpexpect.New(t, "http://localhost:8080/healthy/")
e.GET("/nginx").
Expect().
Status(http.StatusAccepted).
Body().
Contains(`<h2 class="headline" id="headline">Healthy Nginx is loading...</h2>`).
Contains(`Your instance will shutdown automatically after 1 minutes of inactivity.`)
e.GET("/nginx").
Expect().
Status(http.StatusAccepted).
Body().
Contains(`<h2 class="headline" id="headline">Healthy Nginx is loading...</h2>`).
Contains(`Your instance will shutdown automatically after 1 minutes of inactivity.`)
time.Sleep(waitingTime)
e.GET("/nginx").
Expect().
Status(http.StatusNotFound).
Body().Contains(`nginx/1.23.1`)
}