Files
upstream-traggo/timespan/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

79 lines
2.1 KiB
Go

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")
}