Files
upstream-traggo/user/remove_test.go
upstream-mirror cda7c1a474
Some checks failed
build / build (push) Failing after 3s
snapshot of https://github.com/traggo/server.git (master, 2026-09-16; blobs > 131072B omitted)
2026-09-16 05:24:45 +05:00

105 lines
3.0 KiB
Go

package user
import (
"context"
"testing"
"github.com/stretchr/testify/require"
"github.com/traggo/server/test"
)
func TestGQL_RemoveUser_succeeds_removesUser(t *testing.T) {
db := test.InMemoryDB(t)
defer db.Close()
db.NewUserPass(1, "jmattheis", unicornPW, true)
resolver := ResolverForUser{DB: db.DB, PassStrength: 4}
_, err := resolver.RemoveUser(context.Background(), 1)
require.Nil(t, err)
assertUserCount(t, db, 0)
}
func TestGQL_RemoveUser_succeeds_removesDevices(t *testing.T) {
db := test.InMemoryDB(t)
defer db.Close()
user := db.User(1)
user.NewDevice(2, "abc", "devicename")
other := db.User(2)
other.NewDevice(5, "abcx", "devicename")
resolver := ResolverForUser{DB: db.DB, PassStrength: 4}
_, err := resolver.RemoveUser(context.Background(), 1)
require.Nil(t, err)
user.AssertHasDevice("devicename", false).AssertExists(false)
other.AssertExists(true).AssertHasDevice("devicename", true)
}
func TestGQL_RemoveUser_succeeds_removesTags(t *testing.T) {
db := test.InMemoryDB(t)
defer db.Close()
user := db.User(1)
user.NewTagDefinition("oops")
other := db.User(2)
other.NewTagDefinition("oops")
resolver := ResolverForUser{DB: db.DB, PassStrength: 4}
_, err := resolver.RemoveUser(context.Background(), 1)
require.Nil(t, err)
user.AssertExists(false).AssertHasTagDefinition("oops", false)
other.AssertExists(true).AssertHasTagDefinition("oops", true)
}
func TestGQL_RemoveUser_succeeds_removesTimeSpans(t *testing.T) {
db := test.InMemoryDB(t)
defer db.Close()
user := db.User(1)
other := db.User(2)
ts := user.TimeSpan("2019-06-11T18:00:00Z", "2019-06-11T18:00:00Z")
ts.Tag("hello", "world")
otherTs := other.TimeSpan("2019-06-11T18:00:00Z", "2019-06-11T18:00:00Z")
otherTs.Tag("hello", "world")
resolver := ResolverForUser{DB: db.DB, PassStrength: 4}
_, err := resolver.RemoveUser(context.Background(), 1)
require.Nil(t, err)
ts.AssertExists(false).AssertHasTag("hello", "world", false)
otherTs.AssertExists(true).AssertHasTag("hello", "world", true)
}
func TestGQL_RemoveUser_succeeds_removesDashboard(t *testing.T) {
db := test.InMemoryDB(t)
defer db.Close()
user := db.User(1)
other := db.User(2)
userDB := user.Dashboard("cool")
userDB.Range("cool range")
userDB.Entry("cool entry")
otherDB := other.Dashboard("cool")
otherDB.Range("cool range")
otherDB.Entry("cool entry")
resolver := ResolverForUser{DB: db.DB, PassStrength: 4}
_, err := resolver.RemoveUser(context.Background(), 1)
require.Nil(t, err)
userDB.AssertExists(false).AssertHasRange("cool range", false).AssertHasEntry("cool entry", false)
otherDB.AssertExists(true).AssertHasRange("cool range", true).AssertHasEntry("cool entry", true)
}
func TestGQL_RemoveUser_fails_notExistingUser(t *testing.T) {
db := test.InMemoryDB(t)
defer db.Close()
db.NewUserPass(1, "jmattheis", unicornPW, true)
resolver := ResolverForUser{DB: db.DB, PassStrength: 4}
_, err := resolver.RemoveUser(context.Background(), 3)
require.EqualError(t, err, "user with id 3 does not exist")
assertUserCount(t, db, 1)
}