70 lines
1.3 KiB
Go
70 lines
1.3 KiB
Go
package user_test
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
|
|
"git.rob.mx/nidito/puerta/internal/user"
|
|
)
|
|
|
|
func TestParse(t *testing.T) {
|
|
ttl := user.TTL{}
|
|
err := ttl.Scan("")
|
|
if err != nil {
|
|
t.Fatalf("Failed scanning empty string: %s", err)
|
|
}
|
|
|
|
err = ttl.Scan("7d")
|
|
if err != nil {
|
|
t.Fatalf("Failed scanning 7d: %s", err)
|
|
}
|
|
|
|
if ttl.Seconds() != 604800 {
|
|
t.Fatalf("parsed bad seconds %d", ttl.Seconds())
|
|
}
|
|
|
|
// conn := sqlite.ConnectionURL{
|
|
// Database: "test.db",
|
|
// Options: map[string]string{
|
|
// "_journal": "WAL",
|
|
// "_busy_timeout": "5000",
|
|
// },
|
|
// }
|
|
|
|
// _db, err := sqlite.Open(conn)
|
|
// if err != nil {
|
|
// t.Fatal(err)
|
|
// }
|
|
|
|
// user := &user.User{}
|
|
// if err := _db.Get(user, db.Cond{"handle": "test"}); err != nil {
|
|
// t.Fatalf("could not get user: %s", err)
|
|
// }
|
|
|
|
// t.Fatalf("user ttl (%v): %d, from now: %s", user.TTL, user.TTL.Seconds(), user.TTL.FromNow())
|
|
|
|
}
|
|
|
|
func TestMarshalDB(t *testing.T) {
|
|
ttl := user.TTL{}
|
|
|
|
err := ttl.Scan("7d")
|
|
if err != nil {
|
|
t.Fatalf("Failed scanning 7d: %s", err)
|
|
}
|
|
|
|
if ttl.Seconds() != 60*60*24*7 {
|
|
t.Fatalf("parsed bad seconds %d", ttl.Seconds())
|
|
}
|
|
|
|
data, err := ttl.MarshalDB()
|
|
if err != nil {
|
|
t.Fatalf("could not marshal ttl %s", err)
|
|
}
|
|
|
|
expected := `"7d"`
|
|
if fmt.Sprintf("%s", data) != expected {
|
|
t.Fatalf("encoded data mismatch. expected %s, got %s", expected, data)
|
|
}
|
|
}
|