Added transaction feature, fixed some mistakes

This commit is contained in:
2026-04-11 11:12:54 +03:00
parent 6872563c62
commit 545b05d5a0
37 changed files with 2509 additions and 115 deletions
+15 -4
View File
@@ -19,6 +19,14 @@ import (
"github.com/stretchr/testify/require"
)
func int64Ptr(v int64) *int64 {
return &v
}
func stringPtr(v string) *string {
return &v
}
type familyServiceMock struct {
createFn func(ctx context.Context, req domain.CreateFamilyRequest) (*domain.Family, error)
getByIDFn func(ctx context.Context, id int64) (*domain.Family, error)
@@ -68,8 +76,8 @@ func sampleFamily() *domain.Family {
ID: 7,
Name: "Belan",
OwnerID: 10,
TelegramChatID: 12345,
TelegramChatName: "Family Chat",
TelegramChatID: int64Ptr(12345),
TelegramChatName: stringPtr("Family Chat"),
CreatedAt: time.Date(2026, time.January, 21, 10, 0, 0, 0, time.UTC),
UpdatedAt: time.Date(2026, time.January, 21, 11, 0, 0, 0, time.UTC),
}
@@ -106,9 +114,11 @@ func TestFamiliesRouter_Create(t *testing.T) {
expected := sampleFamily()
r := setupFamiliesRouter(&familyServiceMock{createFn: func(ctx context.Context, req domain.CreateFamilyRequest) (*domain.Family, error) {
assert.Equal(t, "Belan", req.Name)
assert.Nil(t, req.TelegramChatID)
assert.Nil(t, req.TelegramChatName)
return expected, nil
}})
req := httptest.NewRequest(http.MethodPost, "/api/v1/families", bytes.NewBufferString(`{"name":"Belan","owner_id":10,"telegram_chat_id":12345,"telegram_chat_name":"Family Chat"}`))
req := httptest.NewRequest(http.MethodPost, "/api/v1/families", bytes.NewBufferString(`{"name":"Belan","owner_id":10}`))
req.Header.Set("Content-Type", "application/json")
w := httptest.NewRecorder()
@@ -233,7 +243,8 @@ func TestFamiliesRouter_Update(t *testing.T) {
assert.Equal(t, int64(7), id)
require.NotNil(t, req.Name)
assert.Equal(t, updatedName, *req.Name)
assert.Equal(t, "Updated", req.TelegramChatName)
require.NotNil(t, req.TelegramChatName)
assert.Equal(t, "Updated", *req.TelegramChatName)
return expected, nil
}})
req := httptest.NewRequest(http.MethodPatch, "/api/v1/families/7", bytes.NewBufferString(`{"name":"`+updatedName+`","telegram_chat_name":"Updated"}`))