parent
e29c36fb5c
commit
831b5ea762
@ -0,0 +1,25 @@ |
||||
<!DOCTYPE html> |
||||
<html lang="en"> |
||||
<head> |
||||
<meta charset="utf-8" /> |
||||
<link rel="stylesheet" href="/global.css"> |
||||
<link rel="stylesheet" href="/color.css"> |
||||
<link rel="stylesheet" href="/blockstart.css"> |
||||
<title>ZedShaw's Game Thing</title> |
||||
</head> |
||||
|
||||
|
||||
<body> |
||||
<header> |
||||
<a href="/">🏡</a> <span>Zed's Game Dev Website Yay</span> |
||||
</header> |
||||
|
||||
<blockstart> |
||||
|
||||
</blockstart> |
||||
|
||||
<footer> |
||||
<h1>Footer</h1> |
||||
</footer> |
||||
</body> |
||||
</html> |
@ -0,0 +1,26 @@ |
||||
<!DOCTYPE html> |
||||
<html lang="en"> |
||||
<head> |
||||
<meta charset="utf-8" /> |
||||
<link rel="stylesheet" href="/global.css"> |
||||
<link rel="stylesheet" href="/color.css"> |
||||
<link rel="stylesheet" href="/blockstart.css"> |
||||
<title>ZedShaw's Game Thing</title> |
||||
</head> |
||||
|
||||
|
||||
<body> |
||||
<header> |
||||
<a href="/">🏡</a> <span>Zed's Game Dev Website Yay</span> |
||||
</header> |
||||
|
||||
<blockstart> |
||||
<h1>ERROR</h1> |
||||
<p>You have an error.</p> |
||||
</blockstart> |
||||
|
||||
<footer> |
||||
<h1>Footer</h1> |
||||
</footer> |
||||
</body> |
||||
</html> |
@ -0,0 +1,44 @@ |
||||
<!DOCTYPE html> |
||||
<html lang="en"> |
||||
<head> |
||||
<meta charset="utf-8" /> |
||||
<link rel="stylesheet" href="/global.css"> |
||||
<link rel="stylesheet" href="/color.css"> |
||||
<link rel="stylesheet" href="/blockstart.css"> |
||||
<title>ZedShaw's Game Thing</title> |
||||
</head> |
||||
|
||||
|
||||
<body data-testid="login-page"> |
||||
<header> |
||||
<a href="/">🏡</a> <span>Zed's Game Dev Website Yay</span> |
||||
</header> |
||||
|
||||
<blockstart style="min-height: 90vw"> |
||||
<h1>Login</h1> |
||||
<block class="center-self" style="--w: 500px; --h: 500px;"> |
||||
<form action="/api/login" method="POST"> |
||||
<card> |
||||
<top><h2 style="color: white">Login</h2></top> |
||||
<middle> |
||||
<label for="username">Username</label> |
||||
<input id="username" name="username" placeholder="Username" type="text"> |
||||
<label for="password">Password</label> |
||||
<input id="password" name="password" placeholder="Password" type="text"> |
||||
</middle> |
||||
<bottom> |
||||
<button-group> |
||||
<button type="button">Cancel</button> |
||||
<button id="login-submit" type="submit">Login</button> |
||||
</button-group> |
||||
</bottom> |
||||
</card> |
||||
</form> |
||||
</block> |
||||
</blockstart> |
||||
|
||||
<footer> |
||||
<h1>Footer</h1> |
||||
</footer> |
||||
</body> |
||||
</html> |
@ -1,36 +1,59 @@ |
||||
package tests |
||||
|
||||
import ( |
||||
"testing" |
||||
"context" |
||||
"time" |
||||
"github.com/stretchr/testify/assert" |
||||
browser "github.com/chromedp/chromedp" |
||||
"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) |
||||
err := browser.Run(ctx, actions...) |
||||
assert.NoError(err) |
||||
} |
||||
|
||||
func Setup(timeout time.Duration) (context.Context, context.CancelFunc) { |
||||
ctx, _ := browser.NewContext(context.Background()) |
||||
|
||||
return context.WithTimeout(ctx, timeout * time.Second) |
||||
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) |
||||
assert := assert.New(t) |
||||
|
||||
ctx, cancel := Setup(20); defer cancel() |
||||
ctx, cancel := Setup(20); defer cancel() |
||||
|
||||
var example string |
||||
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)) |
||||
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") |
||||
assert.Equal(example, "Past Streams") |
||||
} |
||||
|
Loading…
Reference in new issue