[hw-5] concurrency, graceful shutdown, concurrent tests

This commit is contained in:
Никита Шубин
2025-07-06 20:52:27 +00:00
parent dbf8aaedcf
commit 84201fe495
23 changed files with 742 additions and 157 deletions

View File

@@ -8,6 +8,7 @@ import (
"github.com/gojuno/minimock/v3"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"go.uber.org/goleak"
"route256/cart/internal/domain/entity"
"route256/cart/internal/domain/model"
@@ -33,6 +34,21 @@ func (f *productServiceFake) GetProductBySku(_ context.Context, sku entity.Sku)
}, nil
}
func (f *productServiceFake) GetProducts(ctx context.Context, skus []entity.Sku) ([]*model.Product, error) {
res := make([]*model.Product, len(skus))
for i, sku := range skus {
prod, err := f.GetProductBySku(ctx, sku)
if err != nil {
return nil, err
}
res[i] = prod
}
return res, nil
}
type lomsServiceFake struct{}
func (f *lomsServiceFake) StocksInfo(_ context.Context, sku entity.Sku) (uint32, error) {
@@ -51,6 +67,10 @@ func (f *lomsServiceFake) OrderCreate(_ context.Context, cart *model.Cart) (int6
return 1234, nil
}
func TestMain(m *testing.M) {
goleak.VerifyTestMain(m)
}
func TestCartService_AddItem(t *testing.T) {
t.Parallel()