/
main_test.go
83 lines (62 loc) · 1.74 KB
/
main_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
package main
import (
"fmt"
"os"
"runtime/debug"
"testing"
. "github.com/onsi/gomega"
"github.com/sclevine/agouti"
)
const (
PORT = 4444
)
var (
baseUrl = fmt.Sprintf("http://localhost:%v/admin", PORT)
driver *agouti.WebDriver
page *agouti.Page
)
func TestMain(m *testing.M) {
var t *testing.T
var err error
driver = agouti.ChromeDriver() // choose browser driver
driver.Start()
go Start(PORT) // start our program
page, err = driver.NewPage() // get page object from driver, this is what we will use to perform browser testing
if err != nil {
t.Error("Failed to open page.")
}
RegisterTestingT(t)
test := m.Run() // start test
driver.Stop() // close driver after test
os.Exit(test)
}
func StopDriverOnPanic() {
var t *testing.T
if r := recover(); r != nil {
debug.PrintStack()
fmt.Println("Recovered in f", r)
driver.Stop()
t.Fail()
}
}
func TestEnv(t *testing.T) {
Expect(page.Navigate(fmt.Sprintf("%v/users", baseUrl))).To(Succeed())
}
func TestCreateUser(t *testing.T) {
var user User
userName := "user name"
Expect(page.Navigate(fmt.Sprintf("%v/users", baseUrl))).To(Succeed()) // visit user page
Expect(page.Find(".qor-button--new").Click()).To(Succeed()) // click add user button
page.Find("input[name='QorResource.Name']").Fill(userName) // fill in user name
// Select Gender
page.Find("#User_0_Gender_chosen").Click()
page.Find("#User_0_Gender_chosen .chosen-drop ul.chosen-results li[data-option-array-index='0']").Click()
page.FindByButton("Add User").Click() // submit form
DB.Last(&user) // query the user we just created
if user.Name != userName { // assert it created as we expected
t.Error("user name not set")
}
if user.Gender != "Male" {
t.Error("user gender not set")
}
}