diff options
Diffstat (limited to 'tests/gracha.go')
-rw-r--r-- | tests/gracha.go | 107 |
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() +} |