summaryrefslogtreecommitdiff
path: root/tests/gracha.go
diff options
context:
space:
mode:
Diffstat (limited to 'tests/gracha.go')
-rw-r--r--tests/gracha.go107
1 files changed, 107 insertions, 0 deletions
diff --git a/tests/gracha.go b/tests/gracha.go
new file mode 100644
index 0000000..18b54d6
--- /dev/null
+++ b/tests/gracha.go
@@ -0,0 +1,107 @@
+package gracha
+
+import (
+ "database/sql"
+
+ "liteq"
+ g "gobang"
+)
+
+
+type testAuth struct{
+ auth Auth
+ // registerEmail func(credentials)
+ close func() error
+}
+
+func test_defaultPrefix() {
+ g.TestStart("defaultPrefix")
+
+ g.Testing("the defaultPrefix is valid", func() {
+ g.TAssertEqual(g.ValidSQLTablePrefix(defaultPrefix), true)
+ })
+}
+
+func test_tablesFrom() {
+ g.TestStart("tablesFrom()")
+
+ g.Testing("prefix needs to be valid", func() {
+ _, err := tablesFrom("invalid-prefix")
+ g.TAssertEqual(err, g.ErrBadSQLTablePrefix)
+ })
+
+ g.Testing("the struct adds suffixes", func() {
+ t, err := tablesFrom(defaultPrefix)
+ g.TAssertEqual(err, nil)
+ g.TAssertEqual(t, tablesT{
+ users: "gracha-users",
+ userChanges: "gracha-user-changes",
+ tokens: "gracha-tokens",
+ roles: "gracha-roles",
+ roleChanges: "gracha-role-changes",
+ sessions: "gracha-sessions",
+ attempts: "gracha-attempts",
+ audit: "gracha-audit",
+ })
+ })
+}
+
+func mkauth() testAuth {
+ q := new(liteq.Queue)
+ sql.Register("sqlite-liteq", liteq.MakeDriver(q))
+
+ db, err := sql.Open("sqlite-liteq", "file:db?mode=memory&cache=shared")
+ g.TAssertEqual(err, nil)
+
+ *q, err = liteq.New(db)
+ g.TAssertEqual(err, nil)
+
+ auth, err := New(db, *q)
+ g.TAssertEqual(err, nil)
+
+ fns := [](func() error){
+ db.Close,
+ q.Close,
+ }
+ return testAuth{
+ auth: auth,
+ close: func() error {
+ return g.SomeFnError(fns)
+ },
+ }
+}
+
+func test_Register() {
+ g.TestStart("Register()")
+
+ const (
+ email = "email@example.com"
+ password = "password"
+ confirmPassword = "password"
+ )
+
+ g.Testing("we can register a new email", func() {
+ t := mkauth()
+ defer t.close()
+
+ user, err := t.auth.Register(
+ email,
+ password,
+ confirmPassword,
+ )
+ return
+ g.TAssertEqual(err, nil)
+ g.TAssertEqual(user, nil)
+ })
+
+ g.Testing("we can't register duplicate emails", func() {
+ })
+}
+
+
+func MainTest() {
+ g.Init()
+ test_defaultPrefix()
+ test_tablesFrom()
+ test_Register()
+}