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

83 lines
1.9 KiB
Go

package model
import (
"bytes"
"errors"
"testing"
"time"
"github.com/stretchr/testify/assert"
)
func TestTime_MarshalGQL(t *testing.T) {
var buffer bytes.Buffer
expected := `2009-06-30T18:30:00+02:00`
parse, err := time.Parse(time.RFC3339, expected)
assert.Nil(t, err)
toTest := Time(parse)
toTest.MarshalGQL(&buffer)
actual := buffer.String()
assert.Equal(t, `"`+expected+`"`, actual)
}
func TestTime_MarshalGQL_fails(t *testing.T) {
toTest := &Time{}
assert.Panics(t, func() {
toTest.MarshalGQL(&failWriter{})
})
}
type failWriter struct {
}
func (*failWriter) Write(p []byte) (n int, err error) {
return 0, errors.New("uff")
}
func TestTime_UnmarshalGQL_success(t *testing.T) {
date := "2009-06-30T18:30:00+02:00"
parse, err := time.Parse(time.RFC3339, date)
assert.Nil(t, err)
expected := Time(parse)
actual := &Time{}
err = actual.UnmarshalGQL(date)
assert.Nil(t, err)
assert.Equal(t, expected, *actual)
}
func TestTime_OmitTimeZone(t *testing.T) {
date := "2009-06-30T18:30:00+02:00"
tzDate, err := time.Parse(time.RFC3339, date)
assert.Nil(t, err)
utcDate := "2009-06-30T18:30:00Z"
withoutTz, err := time.Parse(time.RFC3339, utcDate)
assert.Nil(t, err)
assert.Equal(t, withoutTz, Time(tzDate).OmitTimeZone())
}
func TestTime_UTC(t *testing.T) {
date := "2009-06-30T18:30:00+02:00"
parse, err := time.Parse(time.RFC3339, date)
assert.Nil(t, err)
without := "2009-06-30T16:30:00Z"
withoutTz, err := time.Parse(time.RFC3339, without)
assert.Nil(t, err)
assert.Equal(t, withoutTz, Time(parse).UTC())
}
func TestTime_UnmarshalGQL_failInvalidType(t *testing.T) {
actual := &Time{}
err := actual.UnmarshalGQL(1)
assert.EqualError(t, err, "time must be a string")
}
func TestTime_UnmarshalGQL_invalidFormat(t *testing.T) {
actual := &Time{}
err := actual.UnmarshalGQL("lol")
assert.EqualError(t, err, `parsing time "lol" as "2006-01-02T15:04:05Z07:00": cannot parse "lol" as "2006"`)
}