实现七月迭代公共技术基础
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 9m20s
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 9m20s
This commit is contained in:
27
internal/testutil/outbox.go
Normal file
27
internal/testutil/outbox.go
Normal file
@@ -0,0 +1,27 @@
|
||||
package testutil
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
// CreateTemporaryOutboxTable 创建事务内自动回滚的公共 Outbox 测试表。
|
||||
func CreateTemporaryOutboxTable(t *testing.T, db *gorm.DB) {
|
||||
t.Helper()
|
||||
if err := db.Exec(`CREATE TEMP TABLE tb_outbox_event (
|
||||
id bigserial PRIMARY KEY, event_id varchar(64) NOT NULL UNIQUE,
|
||||
event_type varchar(150) NOT NULL, payload_version integer NOT NULL,
|
||||
aggregate_type varchar(100) NOT NULL, aggregate_id varchar(100) NOT NULL,
|
||||
resource_type varchar(100) NOT NULL, resource_id varchar(100) NOT NULL,
|
||||
business_key varchar(150) NOT NULL DEFAULT '', request_id varchar(100) NOT NULL DEFAULT '',
|
||||
correlation_id varchar(100) NOT NULL DEFAULT '', payload jsonb NOT NULL,
|
||||
status integer NOT NULL, retry_count integer NOT NULL DEFAULT 0,
|
||||
max_retries integer NOT NULL, next_attempt_at timestamptz NOT NULL,
|
||||
lease_owner varchar(100), lease_expires_at timestamptz,
|
||||
last_error_code varchar(100) NOT NULL DEFAULT '', last_error_summary varchar(500) NOT NULL DEFAULT '',
|
||||
delivered_at timestamptz, created_at timestamptz NOT NULL DEFAULT NOW(), updated_at timestamptz NOT NULL DEFAULT NOW()
|
||||
) ON COMMIT DROP`).Error; err != nil {
|
||||
t.Fatalf("创建 Outbox 测试表失败:%v", err)
|
||||
}
|
||||
}
|
||||
22
internal/testutil/system_config.go
Normal file
22
internal/testutil/system_config.go
Normal file
@@ -0,0 +1,22 @@
|
||||
package testutil
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
// CreateTemporarySystemConfigTable 创建事务内自动回滚的系统配置测试表。
|
||||
func CreateTemporarySystemConfigTable(t *testing.T, db *gorm.DB) {
|
||||
t.Helper()
|
||||
if err := db.Exec(`CREATE TEMP TABLE tb_system_config (
|
||||
id bigserial PRIMARY KEY, config_key varchar(150) NOT NULL UNIQUE,
|
||||
config_value text NOT NULL, value_type varchar(20) NOT NULL,
|
||||
module varchar(100) NOT NULL, description varchar(500) NOT NULL,
|
||||
is_readonly boolean NOT NULL DEFAULT false, is_sensitive boolean NOT NULL DEFAULT false,
|
||||
creator bigint NOT NULL DEFAULT 0, updater bigint NOT NULL DEFAULT 0,
|
||||
created_at timestamptz NOT NULL DEFAULT NOW(), updated_at timestamptz NOT NULL DEFAULT NOW()
|
||||
) ON COMMIT DROP`).Error; err != nil {
|
||||
t.Fatalf("创建系统配置测试表失败:%v", err)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user