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.
90 lines
2.4 KiB
90 lines
2.4 KiB
package tests
|
|
|
|
import (
|
|
"testing"
|
|
"github.com/stretchr/testify/require"
|
|
browser "github.com/chromedp/chromedp"
|
|
"zedshaw.games/webapp/data"
|
|
sq "github.com/Masterminds/squirrel"
|
|
)
|
|
|
|
func deleteTestUser(username string) {
|
|
sql, args, err := sq.Delete("user").Where("username=?", username).ToSql()
|
|
data.Exec(err, sql, args...)
|
|
}
|
|
|
|
func TestLogin(t *testing.T) {
|
|
require := require.New(t)
|
|
deleteTestUser("testerzed")
|
|
|
|
ctx, cancel := Setup(5); defer cancel()
|
|
|
|
Run(require, ctx,
|
|
browser.Navigate(`http://127.0.0.1:5002/register/`),
|
|
browser.WaitVisible(`body > footer`),
|
|
browser.WaitVisible(`[data-testid="register-index-page"]`),
|
|
browser.SendKeys(`#username`, `testerzed`),
|
|
browser.SendKeys(`#email`, `zed@test.com`),
|
|
browser.SendKeys(`#password`, `iamdumb`),
|
|
browser.Click(`#register-submit`, browser.NodeVisible),
|
|
browser.WaitVisible(`body > footer`),
|
|
browser.WaitVisible(`[data-testid="login-index-page"]`))
|
|
|
|
Run(require, ctx,
|
|
browser.Navigate(`http://127.0.0.1:5002/login/`),
|
|
browser.WaitVisible(`body > footer`),
|
|
browser.WaitVisible(`[data-testid="login-index-page"]`),
|
|
browser.SendKeys(`#username`, `testerzed`),
|
|
browser.SendKeys(`#password`, `iamdumb`),
|
|
browser.Click(`#login-submit`, browser.NodeVisible),
|
|
browser.WaitVisible(`body > footer`),
|
|
browser.WaitVisible(`[data-testid="index-page"]`))
|
|
|
|
/// delete the user here
|
|
deleteTestUser("testerzed")
|
|
}
|
|
|
|
|
|
func TestStreamsPage(t *testing.T) {
|
|
require := require.New(t)
|
|
|
|
ctx, cancel := Setup(2);
|
|
defer cancel();
|
|
|
|
GoTo(require, ctx, "/", `#streams`)
|
|
ClickOn(require, ctx, `#streams`)
|
|
WaitFor(require, ctx, `[data-testid="stream-index-page"]`)
|
|
ExpectText(require, ctx, `#page-title`, "Past Streams")
|
|
}
|
|
|
|
func TestLivePage(t *testing.T) {
|
|
require := require.New(t)
|
|
|
|
ctx, cancel := Setup(2);
|
|
defer cancel();
|
|
|
|
GoTo(require, ctx, "/", `#live`)
|
|
ClickOn(require, ctx, `#live`)
|
|
WaitFor(require, ctx, `[data-testid="live-index-page"]`)
|
|
}
|
|
|
|
func TestGamePage(t *testing.T) {
|
|
require := require.New(t)
|
|
|
|
ctx, cancel := Setup(2);
|
|
defer cancel();
|
|
|
|
GoTo(require, ctx, "/", `#game`)
|
|
ClickOn(require, ctx, `#game`)
|
|
WaitFor(require, ctx, `[data-testid="game-index-page"]`)
|
|
ExpectText(require, ctx, `#page-title`, "Zed's Trash Ass Games")
|
|
ClickOn(require, ctx, `[data-testid="game-link"]`)
|
|
}
|
|
|
|
func TestMain(m *testing.M) {
|
|
data.Setup("sqlite3", "./db.sqlite3")
|
|
|
|
m.Run()
|
|
|
|
data.Shutdown()
|
|
}
|
|
|