//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(`
Dynamic Whoami is loading...
`).
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(`Multiple Whoami is loading...
`).
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(`Healthy Nginx is loading...
`).
Contains(`Your instance will shutdown automatically after 1 minutes of inactivity.`)
e.GET("/nginx").
Expect().
Status(http.StatusAccepted).
Body().
Contains(`Healthy Nginx is loading...
`).
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`)
}