feat: 添加订单退款功能的测试用例及相关逻辑

This commit is contained in:
2025-12-23 09:26:22 +08:00
parent ead821ac2c
commit dd7bcdfb98
3 changed files with 104 additions and 43 deletions

View File

@@ -4,13 +4,17 @@ import (
"context"
"testing"
jobs_args "quyun/v2/app/jobs/args"
"quyun/v2/database"
"quyun/v2/providers/job"
"quyun/v2/providers/jwt"
"quyun/v2/providers/postgres"
"github.com/riverqueue/river"
"go.ipao.vip/atom"
"go.ipao.vip/atom/container"
"go.ipao.vip/atom/contracts"
"go.ipao.vip/atom/opt"
"go.uber.org/dig"
"github.com/rogeecn/fabfile"
@@ -22,10 +26,33 @@ func Default(providers ...container.ProviderContainer) container.Providers {
postgres.DefaultProvider(),
jwt.DefaultProvider(),
job.DefaultProvider(),
testJobWorkersProvider(),
database.DefaultProvider(),
}, providers...)
}
type orderRefundTestWorker struct {
river.WorkerDefaults[jobs_args.OrderRefundJob]
}
func (w *orderRefundTestWorker) Work(ctx context.Context, job *river.Job[jobs_args.OrderRefundJob]) error {
return nil
}
func testJobWorkersProvider() container.ProviderContainer {
return container.ProviderContainer{
Provider: func(opts ...opt.Option) error {
return container.Container.Provide(func(__job *job.Job) (contracts.Initial, error) {
obj := &orderRefundTestWorker{}
if err := river.AddWorkerSafely(__job.Workers, obj); err != nil {
return nil, err
}
return obj, nil
}, atom.GroupInitial)
},
}
}
func Serve(providers container.Providers, t *testing.T, invoke any) {
Convey("tests boot up", t, func() {
// 关键语义:测试用例可能会在同一进程内多次调用 Serve。