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:
78
timespan/remove_test.go
Normal file
78
timespan/remove_test.go
Normal file
@@ -0,0 +1,78 @@
|
||||
package timespan
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/traggo/server/generated/gqlmodel"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
"github.com/traggo/server/model"
|
||||
"github.com/traggo/server/test"
|
||||
"github.com/traggo/server/test/fake"
|
||||
)
|
||||
|
||||
func TestRemoveTimeSpan_succeeds_removesTimeSpan(t *testing.T) {
|
||||
db := test.InMemoryDB(t)
|
||||
defer db.Close()
|
||||
user := db.User(3)
|
||||
ts := user.TimeSpan("2019-06-11T18:00:00Z", "2019-06-11T18:00:00Z")
|
||||
ts.Tag("hello", "world")
|
||||
|
||||
resolver := ResolverForTimeSpan{DB: db.DB}
|
||||
actual, err := resolver.RemoveTimeSpan(fake.User(3), ts.TimeSpan.ID)
|
||||
require.NoError(t, err)
|
||||
expected := &gqlmodel.TimeSpan{
|
||||
ID: ts.TimeSpan.ID,
|
||||
Start: test.ModelTime("2019-06-11T18:00:00Z"),
|
||||
End: test.ModelTimeP("2019-06-11T18:00:00Z"),
|
||||
Tags: []*gqlmodel.TimeSpanTag{
|
||||
{Key: "hello", Value: "world"},
|
||||
},
|
||||
}
|
||||
require.Equal(t, expected, actual)
|
||||
assertTimeSpanCount(t, db, 0)
|
||||
}
|
||||
|
||||
func TestRemoveTimeSpan_succeeds_removesTags(t *testing.T) {
|
||||
db := test.InMemoryDB(t)
|
||||
defer db.Close()
|
||||
user := db.User(3)
|
||||
ts := user.TimeSpan("2019-06-11T18:00:00Z", "2019-06-11T18:00:00Z")
|
||||
ts.Tag("hello", "world")
|
||||
|
||||
resolver := ResolverForTimeSpan{DB: db.DB}
|
||||
_, err := resolver.RemoveTimeSpan(fake.User(3), ts.TimeSpan.ID)
|
||||
require.NoError(t, err)
|
||||
|
||||
ts.AssertHasTag("hello", "world", false)
|
||||
}
|
||||
|
||||
func TestRemoveTimeSpan_fails_notExistingTimeSpan(t *testing.T) {
|
||||
db := test.InMemoryDB(t)
|
||||
defer db.Close()
|
||||
db.User(3)
|
||||
|
||||
resolver := ResolverForTimeSpan{DB: db.DB}
|
||||
_, err := resolver.RemoveTimeSpan(fake.User(3), 5)
|
||||
require.EqualError(t, err, "timespan with id 5 does not exist")
|
||||
}
|
||||
|
||||
func TestRemoveTimeSpan_fails_noPermission(t *testing.T) {
|
||||
db := test.InMemoryDB(t)
|
||||
defer db.Close()
|
||||
db.User(3)
|
||||
db.User(5)
|
||||
db.Create(&model.TimeSpan{
|
||||
StartUserTime: test.Time("2019-06-11T18:00:00Z"),
|
||||
StartUTC: test.Time("2019-06-11T18:00:00Z"),
|
||||
EndUserTime: nil,
|
||||
EndUTC: nil,
|
||||
OffsetUTC: 0,
|
||||
ID: 1,
|
||||
UserID: 3,
|
||||
})
|
||||
|
||||
resolver := ResolverForTimeSpan{DB: db.DB}
|
||||
_, err := resolver.RemoveTimeSpan(fake.User(5), 1)
|
||||
require.EqualError(t, err, "timespan with id 1 does not exist")
|
||||
}
|
||||
Reference in New Issue
Block a user