kra-new/internal/service/system/version_import_test.go

37 lines
990 B
Go

package system
import (
"context"
"errors"
"testing"
bizsystem "kra/internal/biz/system"
"kra/internal/service/dto"
)
type versionImportRepo struct {
bizsystem.VersionRepo
saveErr error
}
func (r *versionImportRepo) ImportVersionBundle(context.Context, *bizsystem.VersionBundle) error {
return nil
}
func (r *versionImportRepo) CreateVersion(context.Context, *bizsystem.Version) error {
return r.saveErr
}
func TestImportRequestReturnsVersionAuditSaveFailure(t *testing.T) {
repo := &versionImportRepo{saveErr: errors.New("database unavailable")}
service := NewVersionService(bizsystem.NewVersionUsecase(repo))
request := &dto.ImportVersionRequest{}
request.Version.Name = "release"
request.Version.Code = "v1"
err := service.ImportRequest(context.Background(), request)
var stageErr *bizsystem.VersionStageError
if !errors.As(err, &stageErr) || stageErr.Stage != bizsystem.VersionStageSave {
t.Fatalf("ImportRequest() error = %v, want save stage error", err)
}
}