Alexey Kim 1 жил өмнө
parent
commit
5e9e3b8bfe

+ 5 - 3
model/datetime.go

@@ -19,9 +19,11 @@ func NewDateTime(milli int64) *DateTime {
 	return &date
 }
 
-func NewDateTimeIn(seconds int) DateTime {
+func NewDateTimeIn(seconds int64) DateTime {
 	return DateTime(
-		time.Now().In(time.UTC).Add(time.Duration(seconds) * time.Second).UnixMilli())
+		time.Unix(seconds, 0).
+			In(time.UTC).
+			UnixMilli())
 }
 
 func NewDateTimeFrom(t time.Time) *DateTime {
@@ -83,7 +85,7 @@ func (d *DateTime) UnmarshalGQL(v interface{}) error {
 
 func (d *DateTime) Scan(src any) error {
 	if t, ok := src.(int64); ok {
-		*d = NewDateTimeIn(int(t))
+		*d = NewDateTimeIn(t)
 		return nil
 	}
 

+ 25 - 0
model/datetime_test.go

@@ -0,0 +1,25 @@
+package model
+
+import (
+	"testing"
+)
+
+func TestNewDateTimeIn(t *testing.T) {
+	tests := []struct {
+		seconds int64
+		want    DateTime
+	}{
+		{
+			seconds: 1692324600,
+			want:    1692324600 * 1000,
+		},
+	}
+
+	for _, tt := range tests {
+		t.Run("NewDateTimeIn", func(t *testing.T) {
+			if got := NewDateTimeIn(tt.seconds); got != tt.want {
+				t.Errorf("NewDateTimeIn() = %v, want %v", got, tt.want)
+			}
+		})
+	}
+}