1
0

feat: 系统性改进后端测试体系

- 新增 6 个测试场景 (config load pipe, handler errors, service aggregation, engine degradation, openai decoder edges, negative tests)
- 更新测试工具规格 (mockgen, in-memory SQLite)
- 覆盖率目标从 >80% 提升至 >85%
- 新增 test-unit 和 test-integration Makefile 命令
- 新增死代码清理和 mockgen 需求
- 归档变更至 openspec/changes/archive/2026-04-22-improve-backend-testing/
This commit is contained in:
2026-04-22 13:18:51 +08:00
parent 59179094ed
commit 4e86adffb7
32 changed files with 3374 additions and 729 deletions

View File

@@ -0,0 +1,143 @@
// Code generated by MockGen. DO NOT EDIT.
// Source: model_repo.go
//
// Generated by this command:
//
// mockgen -source=model_repo.go -destination=../../tests/mocks/mock_model_repository.go -package=mocks
//
// Package mocks is a generated GoMock package.
package mocks
import (
domain "nex/backend/internal/domain"
reflect "reflect"
gomock "go.uber.org/mock/gomock"
)
// MockModelRepository is a mock of ModelRepository interface.
type MockModelRepository struct {
ctrl *gomock.Controller
recorder *MockModelRepositoryMockRecorder
isgomock struct{}
}
// MockModelRepositoryMockRecorder is the mock recorder for MockModelRepository.
type MockModelRepositoryMockRecorder struct {
mock *MockModelRepository
}
// NewMockModelRepository creates a new mock instance.
func NewMockModelRepository(ctrl *gomock.Controller) *MockModelRepository {
mock := &MockModelRepository{ctrl: ctrl}
mock.recorder = &MockModelRepositoryMockRecorder{mock}
return mock
}
// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockModelRepository) EXPECT() *MockModelRepositoryMockRecorder {
return m.recorder
}
// Create mocks base method.
func (m *MockModelRepository) Create(model *domain.Model) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Create", model)
ret0, _ := ret[0].(error)
return ret0
}
// Create indicates an expected call of Create.
func (mr *MockModelRepositoryMockRecorder) Create(model any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Create", reflect.TypeOf((*MockModelRepository)(nil).Create), model)
}
// Delete mocks base method.
func (m *MockModelRepository) Delete(id string) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Delete", id)
ret0, _ := ret[0].(error)
return ret0
}
// Delete indicates an expected call of Delete.
func (mr *MockModelRepositoryMockRecorder) Delete(id any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Delete", reflect.TypeOf((*MockModelRepository)(nil).Delete), id)
}
// FindByProviderAndModelName mocks base method.
func (m *MockModelRepository) FindByProviderAndModelName(providerID, modelName string) (*domain.Model, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "FindByProviderAndModelName", providerID, modelName)
ret0, _ := ret[0].(*domain.Model)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// FindByProviderAndModelName indicates an expected call of FindByProviderAndModelName.
func (mr *MockModelRepositoryMockRecorder) FindByProviderAndModelName(providerID, modelName any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FindByProviderAndModelName", reflect.TypeOf((*MockModelRepository)(nil).FindByProviderAndModelName), providerID, modelName)
}
// GetByID mocks base method.
func (m *MockModelRepository) GetByID(id string) (*domain.Model, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "GetByID", id)
ret0, _ := ret[0].(*domain.Model)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// GetByID indicates an expected call of GetByID.
func (mr *MockModelRepositoryMockRecorder) GetByID(id any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetByID", reflect.TypeOf((*MockModelRepository)(nil).GetByID), id)
}
// List mocks base method.
func (m *MockModelRepository) List(providerID string) ([]domain.Model, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "List", providerID)
ret0, _ := ret[0].([]domain.Model)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// List indicates an expected call of List.
func (mr *MockModelRepositoryMockRecorder) List(providerID any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "List", reflect.TypeOf((*MockModelRepository)(nil).List), providerID)
}
// ListEnabled mocks base method.
func (m *MockModelRepository) ListEnabled() ([]domain.Model, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "ListEnabled")
ret0, _ := ret[0].([]domain.Model)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// ListEnabled indicates an expected call of ListEnabled.
func (mr *MockModelRepositoryMockRecorder) ListEnabled() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListEnabled", reflect.TypeOf((*MockModelRepository)(nil).ListEnabled))
}
// Update mocks base method.
func (m *MockModelRepository) Update(id string, updates map[string]any) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Update", id, updates)
ret0, _ := ret[0].(error)
return ret0
}
// Update indicates an expected call of Update.
func (mr *MockModelRepositoryMockRecorder) Update(id, updates any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Update", reflect.TypeOf((*MockModelRepository)(nil).Update), id, updates)
}

View File

@@ -0,0 +1,128 @@
// Code generated by MockGen. DO NOT EDIT.
// Source: model_service.go
//
// Generated by this command:
//
// mockgen -source=model_service.go -destination=../../tests/mocks/mock_model_service.go -package=mocks
//
// Package mocks is a generated GoMock package.
package mocks
import (
domain "nex/backend/internal/domain"
reflect "reflect"
gomock "go.uber.org/mock/gomock"
)
// MockModelService is a mock of ModelService interface.
type MockModelService struct {
ctrl *gomock.Controller
recorder *MockModelServiceMockRecorder
isgomock struct{}
}
// MockModelServiceMockRecorder is the mock recorder for MockModelService.
type MockModelServiceMockRecorder struct {
mock *MockModelService
}
// NewMockModelService creates a new mock instance.
func NewMockModelService(ctrl *gomock.Controller) *MockModelService {
mock := &MockModelService{ctrl: ctrl}
mock.recorder = &MockModelServiceMockRecorder{mock}
return mock
}
// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockModelService) EXPECT() *MockModelServiceMockRecorder {
return m.recorder
}
// Create mocks base method.
func (m *MockModelService) Create(model *domain.Model) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Create", model)
ret0, _ := ret[0].(error)
return ret0
}
// Create indicates an expected call of Create.
func (mr *MockModelServiceMockRecorder) Create(model any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Create", reflect.TypeOf((*MockModelService)(nil).Create), model)
}
// Delete mocks base method.
func (m *MockModelService) Delete(id string) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Delete", id)
ret0, _ := ret[0].(error)
return ret0
}
// Delete indicates an expected call of Delete.
func (mr *MockModelServiceMockRecorder) Delete(id any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Delete", reflect.TypeOf((*MockModelService)(nil).Delete), id)
}
// Get mocks base method.
func (m *MockModelService) Get(id string) (*domain.Model, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Get", id)
ret0, _ := ret[0].(*domain.Model)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// Get indicates an expected call of Get.
func (mr *MockModelServiceMockRecorder) Get(id any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Get", reflect.TypeOf((*MockModelService)(nil).Get), id)
}
// List mocks base method.
func (m *MockModelService) List(providerID string) ([]domain.Model, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "List", providerID)
ret0, _ := ret[0].([]domain.Model)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// List indicates an expected call of List.
func (mr *MockModelServiceMockRecorder) List(providerID any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "List", reflect.TypeOf((*MockModelService)(nil).List), providerID)
}
// ListEnabled mocks base method.
func (m *MockModelService) ListEnabled() ([]domain.Model, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "ListEnabled")
ret0, _ := ret[0].([]domain.Model)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// ListEnabled indicates an expected call of ListEnabled.
func (mr *MockModelServiceMockRecorder) ListEnabled() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListEnabled", reflect.TypeOf((*MockModelService)(nil).ListEnabled))
}
// Update mocks base method.
func (m *MockModelService) Update(id string, updates map[string]any) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Update", id, updates)
ret0, _ := ret[0].(error)
return ret0
}
// Update indicates an expected call of Update.
func (mr *MockModelServiceMockRecorder) Update(id, updates any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Update", reflect.TypeOf((*MockModelService)(nil).Update), id, updates)
}

View File

@@ -0,0 +1,73 @@
// Code generated by MockGen. DO NOT EDIT.
// Source: client.go
//
// Generated by this command:
//
// mockgen -source=client.go -destination=../../tests/mocks/mock_provider_client.go -package=mocks
//
// Package mocks is a generated GoMock package.
package mocks
import (
context "context"
conversion "nex/backend/internal/conversion"
provider "nex/backend/internal/provider"
reflect "reflect"
gomock "go.uber.org/mock/gomock"
)
// MockProviderClient is a mock of ProviderClient interface.
type MockProviderClient struct {
ctrl *gomock.Controller
recorder *MockProviderClientMockRecorder
isgomock struct{}
}
// MockProviderClientMockRecorder is the mock recorder for MockProviderClient.
type MockProviderClientMockRecorder struct {
mock *MockProviderClient
}
// NewMockProviderClient creates a new mock instance.
func NewMockProviderClient(ctrl *gomock.Controller) *MockProviderClient {
mock := &MockProviderClient{ctrl: ctrl}
mock.recorder = &MockProviderClientMockRecorder{mock}
return mock
}
// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockProviderClient) EXPECT() *MockProviderClientMockRecorder {
return m.recorder
}
// Send mocks base method.
func (m *MockProviderClient) Send(ctx context.Context, spec conversion.HTTPRequestSpec) (*conversion.HTTPResponseSpec, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Send", ctx, spec)
ret0, _ := ret[0].(*conversion.HTTPResponseSpec)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// Send indicates an expected call of Send.
func (mr *MockProviderClientMockRecorder) Send(ctx, spec any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Send", reflect.TypeOf((*MockProviderClient)(nil).Send), ctx, spec)
}
// SendStream mocks base method.
func (m *MockProviderClient) SendStream(ctx context.Context, spec conversion.HTTPRequestSpec) (<-chan provider.StreamEvent, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "SendStream", ctx, spec)
ret0, _ := ret[0].(<-chan provider.StreamEvent)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// SendStream indicates an expected call of SendStream.
func (mr *MockProviderClientMockRecorder) SendStream(ctx, spec any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendStream", reflect.TypeOf((*MockProviderClient)(nil).SendStream), ctx, spec)
}

View File

@@ -0,0 +1,113 @@
// Code generated by MockGen. DO NOT EDIT.
// Source: provider_repo.go
//
// Generated by this command:
//
// mockgen -source=provider_repo.go -destination=../../tests/mocks/mock_provider_repository.go -package=mocks
//
// Package mocks is a generated GoMock package.
package mocks
import (
domain "nex/backend/internal/domain"
reflect "reflect"
gomock "go.uber.org/mock/gomock"
)
// MockProviderRepository is a mock of ProviderRepository interface.
type MockProviderRepository struct {
ctrl *gomock.Controller
recorder *MockProviderRepositoryMockRecorder
isgomock struct{}
}
// MockProviderRepositoryMockRecorder is the mock recorder for MockProviderRepository.
type MockProviderRepositoryMockRecorder struct {
mock *MockProviderRepository
}
// NewMockProviderRepository creates a new mock instance.
func NewMockProviderRepository(ctrl *gomock.Controller) *MockProviderRepository {
mock := &MockProviderRepository{ctrl: ctrl}
mock.recorder = &MockProviderRepositoryMockRecorder{mock}
return mock
}
// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockProviderRepository) EXPECT() *MockProviderRepositoryMockRecorder {
return m.recorder
}
// Create mocks base method.
func (m *MockProviderRepository) Create(provider *domain.Provider) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Create", provider)
ret0, _ := ret[0].(error)
return ret0
}
// Create indicates an expected call of Create.
func (mr *MockProviderRepositoryMockRecorder) Create(provider any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Create", reflect.TypeOf((*MockProviderRepository)(nil).Create), provider)
}
// Delete mocks base method.
func (m *MockProviderRepository) Delete(id string) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Delete", id)
ret0, _ := ret[0].(error)
return ret0
}
// Delete indicates an expected call of Delete.
func (mr *MockProviderRepositoryMockRecorder) Delete(id any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Delete", reflect.TypeOf((*MockProviderRepository)(nil).Delete), id)
}
// GetByID mocks base method.
func (m *MockProviderRepository) GetByID(id string) (*domain.Provider, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "GetByID", id)
ret0, _ := ret[0].(*domain.Provider)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// GetByID indicates an expected call of GetByID.
func (mr *MockProviderRepositoryMockRecorder) GetByID(id any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetByID", reflect.TypeOf((*MockProviderRepository)(nil).GetByID), id)
}
// List mocks base method.
func (m *MockProviderRepository) List() ([]domain.Provider, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "List")
ret0, _ := ret[0].([]domain.Provider)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// List indicates an expected call of List.
func (mr *MockProviderRepositoryMockRecorder) List() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "List", reflect.TypeOf((*MockProviderRepository)(nil).List))
}
// Update mocks base method.
func (m *MockProviderRepository) Update(id string, updates map[string]any) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Update", id, updates)
ret0, _ := ret[0].(error)
return ret0
}
// Update indicates an expected call of Update.
func (mr *MockProviderRepositoryMockRecorder) Update(id, updates any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Update", reflect.TypeOf((*MockProviderRepository)(nil).Update), id, updates)
}

View File

@@ -0,0 +1,143 @@
// Code generated by MockGen. DO NOT EDIT.
// Source: provider_service.go
//
// Generated by this command:
//
// mockgen -source=provider_service.go -destination=../../tests/mocks/mock_provider_service.go -package=mocks
//
// Package mocks is a generated GoMock package.
package mocks
import (
domain "nex/backend/internal/domain"
reflect "reflect"
gomock "go.uber.org/mock/gomock"
)
// MockProviderService is a mock of ProviderService interface.
type MockProviderService struct {
ctrl *gomock.Controller
recorder *MockProviderServiceMockRecorder
isgomock struct{}
}
// MockProviderServiceMockRecorder is the mock recorder for MockProviderService.
type MockProviderServiceMockRecorder struct {
mock *MockProviderService
}
// NewMockProviderService creates a new mock instance.
func NewMockProviderService(ctrl *gomock.Controller) *MockProviderService {
mock := &MockProviderService{ctrl: ctrl}
mock.recorder = &MockProviderServiceMockRecorder{mock}
return mock
}
// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockProviderService) EXPECT() *MockProviderServiceMockRecorder {
return m.recorder
}
// Create mocks base method.
func (m *MockProviderService) Create(provider *domain.Provider) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Create", provider)
ret0, _ := ret[0].(error)
return ret0
}
// Create indicates an expected call of Create.
func (mr *MockProviderServiceMockRecorder) Create(provider any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Create", reflect.TypeOf((*MockProviderService)(nil).Create), provider)
}
// Delete mocks base method.
func (m *MockProviderService) Delete(id string) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Delete", id)
ret0, _ := ret[0].(error)
return ret0
}
// Delete indicates an expected call of Delete.
func (mr *MockProviderServiceMockRecorder) Delete(id any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Delete", reflect.TypeOf((*MockProviderService)(nil).Delete), id)
}
// Get mocks base method.
func (m *MockProviderService) Get(id string, maskKey bool) (*domain.Provider, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Get", id, maskKey)
ret0, _ := ret[0].(*domain.Provider)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// Get indicates an expected call of Get.
func (mr *MockProviderServiceMockRecorder) Get(id, maskKey any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Get", reflect.TypeOf((*MockProviderService)(nil).Get), id, maskKey)
}
// GetModelByProviderAndName mocks base method.
func (m *MockProviderService) GetModelByProviderAndName(providerID, modelName string) (*domain.Model, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "GetModelByProviderAndName", providerID, modelName)
ret0, _ := ret[0].(*domain.Model)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// GetModelByProviderAndName indicates an expected call of GetModelByProviderAndName.
func (mr *MockProviderServiceMockRecorder) GetModelByProviderAndName(providerID, modelName any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetModelByProviderAndName", reflect.TypeOf((*MockProviderService)(nil).GetModelByProviderAndName), providerID, modelName)
}
// List mocks base method.
func (m *MockProviderService) List() ([]domain.Provider, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "List")
ret0, _ := ret[0].([]domain.Provider)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// List indicates an expected call of List.
func (mr *MockProviderServiceMockRecorder) List() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "List", reflect.TypeOf((*MockProviderService)(nil).List))
}
// ListEnabledModels mocks base method.
func (m *MockProviderService) ListEnabledModels() ([]domain.Model, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "ListEnabledModels")
ret0, _ := ret[0].([]domain.Model)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// ListEnabledModels indicates an expected call of ListEnabledModels.
func (mr *MockProviderServiceMockRecorder) ListEnabledModels() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListEnabledModels", reflect.TypeOf((*MockProviderService)(nil).ListEnabledModels))
}
// Update mocks base method.
func (m *MockProviderService) Update(id string, updates map[string]any) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Update", id, updates)
ret0, _ := ret[0].(error)
return ret0
}
// Update indicates an expected call of Update.
func (mr *MockProviderServiceMockRecorder) Update(id, updates any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Update", reflect.TypeOf((*MockProviderService)(nil).Update), id, updates)
}

View File

@@ -0,0 +1,56 @@
// Code generated by MockGen. DO NOT EDIT.
// Source: routing_service.go
//
// Generated by this command:
//
// mockgen -source=routing_service.go -destination=../../tests/mocks/mock_routing_service.go -package=mocks
//
// Package mocks is a generated GoMock package.
package mocks
import (
domain "nex/backend/internal/domain"
reflect "reflect"
gomock "go.uber.org/mock/gomock"
)
// MockRoutingService is a mock of RoutingService interface.
type MockRoutingService struct {
ctrl *gomock.Controller
recorder *MockRoutingServiceMockRecorder
isgomock struct{}
}
// MockRoutingServiceMockRecorder is the mock recorder for MockRoutingService.
type MockRoutingServiceMockRecorder struct {
mock *MockRoutingService
}
// NewMockRoutingService creates a new mock instance.
func NewMockRoutingService(ctrl *gomock.Controller) *MockRoutingService {
mock := &MockRoutingService{ctrl: ctrl}
mock.recorder = &MockRoutingServiceMockRecorder{mock}
return mock
}
// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockRoutingService) EXPECT() *MockRoutingServiceMockRecorder {
return m.recorder
}
// RouteByModelName mocks base method.
func (m *MockRoutingService) RouteByModelName(providerID, modelName string) (*domain.RouteResult, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "RouteByModelName", providerID, modelName)
ret0, _ := ret[0].(*domain.RouteResult)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// RouteByModelName indicates an expected call of RouteByModelName.
func (mr *MockRoutingServiceMockRecorder) RouteByModelName(providerID, modelName any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RouteByModelName", reflect.TypeOf((*MockRoutingService)(nil).RouteByModelName), providerID, modelName)
}

View File

@@ -0,0 +1,71 @@
// Code generated by MockGen. DO NOT EDIT.
// Source: stats_repo.go
//
// Generated by this command:
//
// mockgen -source=stats_repo.go -destination=../../tests/mocks/mock_stats_repository.go -package=mocks
//
// Package mocks is a generated GoMock package.
package mocks
import (
domain "nex/backend/internal/domain"
reflect "reflect"
time "time"
gomock "go.uber.org/mock/gomock"
)
// MockStatsRepository is a mock of StatsRepository interface.
type MockStatsRepository struct {
ctrl *gomock.Controller
recorder *MockStatsRepositoryMockRecorder
isgomock struct{}
}
// MockStatsRepositoryMockRecorder is the mock recorder for MockStatsRepository.
type MockStatsRepositoryMockRecorder struct {
mock *MockStatsRepository
}
// NewMockStatsRepository creates a new mock instance.
func NewMockStatsRepository(ctrl *gomock.Controller) *MockStatsRepository {
mock := &MockStatsRepository{ctrl: ctrl}
mock.recorder = &MockStatsRepositoryMockRecorder{mock}
return mock
}
// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockStatsRepository) EXPECT() *MockStatsRepositoryMockRecorder {
return m.recorder
}
// Query mocks base method.
func (m *MockStatsRepository) Query(providerID, modelName string, startDate, endDate *time.Time) ([]domain.UsageStats, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Query", providerID, modelName, startDate, endDate)
ret0, _ := ret[0].([]domain.UsageStats)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// Query indicates an expected call of Query.
func (mr *MockStatsRepositoryMockRecorder) Query(providerID, modelName, startDate, endDate any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Query", reflect.TypeOf((*MockStatsRepository)(nil).Query), providerID, modelName, startDate, endDate)
}
// Record mocks base method.
func (m *MockStatsRepository) Record(providerID, modelName string) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Record", providerID, modelName)
ret0, _ := ret[0].(error)
return ret0
}
// Record indicates an expected call of Record.
func (mr *MockStatsRepositoryMockRecorder) Record(providerID, modelName any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Record", reflect.TypeOf((*MockStatsRepository)(nil).Record), providerID, modelName)
}

View File

@@ -0,0 +1,85 @@
// Code generated by MockGen. DO NOT EDIT.
// Source: stats_service.go
//
// Generated by this command:
//
// mockgen -source=stats_service.go -destination=../../tests/mocks/mock_stats_service.go -package=mocks
//
// Package mocks is a generated GoMock package.
package mocks
import (
domain "nex/backend/internal/domain"
reflect "reflect"
time "time"
gomock "go.uber.org/mock/gomock"
)
// MockStatsService is a mock of StatsService interface.
type MockStatsService struct {
ctrl *gomock.Controller
recorder *MockStatsServiceMockRecorder
isgomock struct{}
}
// MockStatsServiceMockRecorder is the mock recorder for MockStatsService.
type MockStatsServiceMockRecorder struct {
mock *MockStatsService
}
// NewMockStatsService creates a new mock instance.
func NewMockStatsService(ctrl *gomock.Controller) *MockStatsService {
mock := &MockStatsService{ctrl: ctrl}
mock.recorder = &MockStatsServiceMockRecorder{mock}
return mock
}
// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockStatsService) EXPECT() *MockStatsServiceMockRecorder {
return m.recorder
}
// Aggregate mocks base method.
func (m *MockStatsService) Aggregate(stats []domain.UsageStats, groupBy string) []map[string]any {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Aggregate", stats, groupBy)
ret0, _ := ret[0].([]map[string]any)
return ret0
}
// Aggregate indicates an expected call of Aggregate.
func (mr *MockStatsServiceMockRecorder) Aggregate(stats, groupBy any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Aggregate", reflect.TypeOf((*MockStatsService)(nil).Aggregate), stats, groupBy)
}
// Get mocks base method.
func (m *MockStatsService) Get(providerID, modelName string, startDate, endDate *time.Time) ([]domain.UsageStats, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Get", providerID, modelName, startDate, endDate)
ret0, _ := ret[0].([]domain.UsageStats)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// Get indicates an expected call of Get.
func (mr *MockStatsServiceMockRecorder) Get(providerID, modelName, startDate, endDate any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Get", reflect.TypeOf((*MockStatsService)(nil).Get), providerID, modelName, startDate, endDate)
}
// Record mocks base method.
func (m *MockStatsService) Record(providerID, modelName string) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Record", providerID, modelName)
ret0, _ := ret[0].(error)
return ret0
}
// Record indicates an expected call of Record.
func (mr *MockStatsServiceMockRecorder) Record(providerID, modelName any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Record", reflect.TypeOf((*MockStatsService)(nil).Record), providerID, modelName)
}