A website for my game dev stuff that supports chat, etc.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
zedshaw-games/tests/base_chrome.go

59 lines
1.5 KiB

package tests
import (
"testing"
"context"
"log"
"time"
"github.com/stretchr/testify/assert"
browser "github.com/chromedp/chromedp"
)
func Run(assert *assert.Assertions, ctx context.Context, actions ...browser.Action) {
err := browser.Run(ctx, actions...)
assert.NoError(err)
}
func Setup(timeout time.Duration) (context.Context, context.CancelFunc) {
opts := append(browser.DefaultExecAllocatorOptions[:],
browser.Flag("headless", false),)
allocCtx, _ := browser.NewExecAllocator(context.Background(), opts...)
ctx, _ := browser.NewContext(allocCtx, browser.WithLogf(log.Printf))
return context.WithTimeout(ctx, timeout * time.Second)
}
func TestLogin(t *testing.T) {
assert := assert.New(t)
ctx, cancel := Setup(5); defer cancel()
Run(assert, ctx,
browser.Navigate(`http://127.0.0.1:5002/login/`),
browser.WaitVisible(`body > footer`),
browser.WaitVisible(`[data-testid="login-page"]`),
browser.SendKeys(`#username`, `zedshaw`),
browser.SendKeys(`#password`, `1234`),
browser.Click(`#login-submit`, browser.NodeVisible),
browser.WaitVisible(`body > footer`),
browser.WaitVisible(`[data-testid="home-page"]`))
}
func TestStreamPage(t *testing.T) {
assert := assert.New(t)
ctx, cancel := Setup(20); defer cancel()
var example string
Run(assert, ctx,
browser.Navigate(`http://127.0.0.1:5002`),
browser.WaitVisible(`body > footer`),
browser.Click(`#streams`, browser.NodeVisible),
browser.Text(`#streams-title`, &example))
assert.Equal(example, "Past Streams")
}