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() }