snapshot of https://github.com/traggo/server.git (master, 2026-09-16; blobs > 131072B omitted)
Some checks failed
build / build (push) Failing after 3s
Some checks failed
build / build (push) Failing after 3s
This commit is contained in:
103
test/db_test.go
Normal file
103
test/db_test.go
Normal file
@@ -0,0 +1,103 @@
|
||||
package test_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/traggo/server/model"
|
||||
"github.com/traggo/server/test"
|
||||
)
|
||||
|
||||
func TestInMemoryDB(t *testing.T) {
|
||||
db := test.InMemoryDB(t)
|
||||
defer db.Close()
|
||||
assert.NotNil(t, db)
|
||||
}
|
||||
|
||||
func TestDatabase(t *testing.T) {
|
||||
db := test.InMemoryDB(t)
|
||||
defer db.Close()
|
||||
user := db.User(1)
|
||||
|
||||
user.AssertHasDevice("test device", false)
|
||||
user.NewDevice(1, "lol", "test device")
|
||||
user.AssertHasDevice("test device", true)
|
||||
|
||||
ts := user.TimeSpan("2009-06-30T18:30:00Z", "2009-06-30T18:40:00Z")
|
||||
|
||||
ts.AssertHasTagIgnoreValue("abc", false)
|
||||
ts.AssertHasTag("abc", "def", false)
|
||||
ts.Tag("abc", "def")
|
||||
ts.AssertHasTag("abc", "def", true)
|
||||
ts.AssertHasTagIgnoreValue("abc", true)
|
||||
|
||||
db.NewUser(2, "abc", true)
|
||||
db.NewUserPass(3, "xxx", []byte{5, 5}, true)
|
||||
|
||||
expectedUsers := []model.User{
|
||||
{ID: 1, Name: "test1", Pass: []uint8{1, 2, 3}, Admin: false},
|
||||
{ID: 2, Name: "abc", Pass: []uint8{1, 2, 3}, Admin: true},
|
||||
{ID: 3, Name: "xxx", Pass: []uint8{5, 5}, Admin: true}}
|
||||
|
||||
var users []model.User
|
||||
db.Find(&users)
|
||||
assert.Equal(t, expectedUsers, users)
|
||||
|
||||
expectedDevices := []model.Device{{
|
||||
ID: 1,
|
||||
Token: "lol",
|
||||
Name: "test device",
|
||||
UserID: 1,
|
||||
Type: model.TypeNoExpiry,
|
||||
ActiveAt: test.Time("2009-06-30T18:30:00Z"),
|
||||
CreatedAt: test.Time("2009-06-30T18:30:00Z")}}
|
||||
|
||||
var devices []model.Device
|
||||
db.Find(&devices)
|
||||
assert.Equal(t, expectedDevices, devices)
|
||||
|
||||
expectedTimeSpans := []model.TimeSpan{{
|
||||
ID: 1,
|
||||
UserID: 1,
|
||||
StartUserTime: test.Time("2009-06-30T18:30:00Z"),
|
||||
StartUTC: test.Time("2009-06-30T18:30:00Z"),
|
||||
EndUserTime: test.TimeP("2009-06-30T18:40:00Z"),
|
||||
EndUTC: test.TimeP("2009-06-30T18:40:00Z"),
|
||||
Tags: []model.TimeSpanTag{{
|
||||
Key: "abc",
|
||||
StringValue: "def",
|
||||
TimeSpanID: 1,
|
||||
}},
|
||||
}}
|
||||
|
||||
var timeSpans []model.TimeSpan
|
||||
db.Preload("Tags").Find(&timeSpans)
|
||||
assert.Equal(t, expectedTimeSpans, timeSpans)
|
||||
|
||||
ts.AssertExists(true)
|
||||
db.Delete(new(model.TimeSpan), "id = ?", ts.TimeSpan.ID)
|
||||
ts.AssertExists(false)
|
||||
|
||||
user.AssertHasTagDefinition("oops", false)
|
||||
user.NewTagDefinition("oops")
|
||||
user.AssertHasTagDefinition("oops", true)
|
||||
|
||||
dash := user.Dashboard("hello")
|
||||
|
||||
dash.AssertHasRange("hello", false)
|
||||
dash.Range("hello")
|
||||
dash.AssertHasRange("hello", true)
|
||||
|
||||
dash.AssertHasEntry("abc", false)
|
||||
dash.Entry("abc")
|
||||
dash.AssertHasEntry("abc", true)
|
||||
|
||||
dash.AssertExists(true)
|
||||
db.Delete(new(model.Dashboard), "id = ?", dash.Dashboard.ID)
|
||||
dash.AssertExists(false)
|
||||
|
||||
user.AssertExists(true)
|
||||
db.Delete(new(model.User), "id = ?", user.User.ID)
|
||||
user.AssertExists(false)
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user