移除所有测试代码和测试要求
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 6m33s

**变更说明**:
- 删除所有 *_test.go 文件(单元测试、集成测试、验收测试、流程测试)
- 删除整个 tests/ 目录
- 更新 CLAUDE.md:用"测试禁令"章节替换所有测试要求
- 删除测试生成 Skill (openspec-generate-acceptance-tests)
- 删除测试生成命令 (opsx:gen-tests)
- 更新 tasks.md:删除所有测试相关任务

**新规范**:
-  禁止编写任何形式的自动化测试
-  禁止创建 *_test.go 文件
-  禁止在任务中包含测试相关工作
-  仅当用户明确要求时才编写测试

**原因**:
业务系统的正确性通过人工验证和生产环境监控保证,测试代码维护成本高于价值。

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-02-11 17:13:42 +08:00
parent 804145332b
commit 353621d923
218 changed files with 11787 additions and 41983 deletions

View File

@@ -1,243 +0,0 @@
package shop
import (
"context"
"testing"
"github.com/break/junhong_cmp_fiber/internal/model"
"github.com/break/junhong_cmp_fiber/internal/store/postgres"
"github.com/break/junhong_cmp_fiber/pkg/constants"
"github.com/break/junhong_cmp_fiber/pkg/middleware"
"github.com/break/junhong_cmp_fiber/tests/testutils"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestAssignRolesToShop(t *testing.T) {
tx := testutils.NewTestTransaction(t)
rdb := testutils.GetTestRedis(t)
testutils.CleanTestRedisKeys(t, rdb)
shopStore := postgres.NewShopStore(tx, rdb)
accountStore := postgres.NewAccountStore(tx, rdb)
shopRoleStore := postgres.NewShopRoleStore(tx, rdb)
roleStore := postgres.NewRoleStore(tx)
service := New(shopStore, accountStore, shopRoleStore, roleStore)
shop := &model.Shop{
ShopName: "测试店铺",
ShopCode: "TEST_SHOP_001",
Level: 1,
Status: constants.StatusEnabled,
}
require.NoError(t, tx.Create(shop).Error)
role := &model.Role{
RoleName: "代理店长",
RoleType: constants.RoleTypeCustomer,
Status: constants.StatusEnabled,
}
require.NoError(t, roleStore.Create(context.Background(), role))
ctx := middleware.SetUserContext(context.Background(), &middleware.UserContextInfo{
UserID: 1,
UserType: constants.UserTypeSuperAdmin,
})
t.Run("成功分配单个角色", func(t *testing.T) {
result, err := service.AssignRolesToShop(ctx, shop.ID, []uint{role.ID})
require.NoError(t, err)
assert.Len(t, result, 1)
assert.Equal(t, shop.ID, result[0].ShopID)
assert.Equal(t, role.ID, result[0].RoleID)
})
t.Run("清空所有角色", func(t *testing.T) {
result, err := service.AssignRolesToShop(ctx, shop.ID, []uint{})
require.NoError(t, err)
assert.Empty(t, result)
roles, err := service.GetShopRoles(ctx, shop.ID)
require.NoError(t, err)
assert.Empty(t, roles.Roles)
})
t.Run("替换现有角色", func(t *testing.T) {
require.NoError(t, shopRoleStore.Create(ctx, &model.ShopRole{
ShopID: shop.ID,
RoleID: role.ID,
Status: constants.StatusEnabled,
Creator: 1,
Updater: 1,
}))
newRole := &model.Role{
RoleName: "代理经理",
RoleType: constants.RoleTypeCustomer,
Status: constants.StatusEnabled,
}
require.NoError(t, roleStore.Create(ctx, newRole))
result, err := service.AssignRolesToShop(ctx, shop.ID, []uint{newRole.ID})
require.NoError(t, err)
assert.Len(t, result, 1)
assert.Equal(t, newRole.ID, result[0].RoleID)
})
t.Run("角色类型校验失败", func(t *testing.T) {
platformRole := &model.Role{
RoleName: "平台角色",
RoleType: constants.RoleTypePlatform,
Status: constants.StatusEnabled,
}
require.NoError(t, roleStore.Create(ctx, platformRole))
_, err := service.AssignRolesToShop(ctx, shop.ID, []uint{platformRole.ID})
require.Error(t, err)
assert.Contains(t, err.Error(), "店铺只能分配客户角色")
})
t.Run("角色不存在", func(t *testing.T) {
_, err := service.AssignRolesToShop(ctx, shop.ID, []uint{99999})
require.Error(t, err)
assert.Contains(t, err.Error(), "部分角色不存在")
})
t.Run("店铺不存在", func(t *testing.T) {
_, err := service.AssignRolesToShop(ctx, 99999, []uint{role.ID})
require.Error(t, err)
assert.Contains(t, err.Error(), "店铺不存在")
})
}
func TestGetShopRoles(t *testing.T) {
tx := testutils.NewTestTransaction(t)
rdb := testutils.GetTestRedis(t)
testutils.CleanTestRedisKeys(t, rdb)
shopStore := postgres.NewShopStore(tx, rdb)
accountStore := postgres.NewAccountStore(tx, rdb)
shopRoleStore := postgres.NewShopRoleStore(tx, rdb)
roleStore := postgres.NewRoleStore(tx)
service := New(shopStore, accountStore, shopRoleStore, roleStore)
shop := &model.Shop{
ShopName: "测试店铺2",
ShopCode: "TEST_SHOP_002",
Level: 1,
Status: constants.StatusEnabled,
}
require.NoError(t, tx.Create(shop).Error)
role := &model.Role{
RoleName: "代理店长",
RoleType: constants.RoleTypeCustomer,
Status: constants.StatusEnabled,
}
require.NoError(t, roleStore.Create(context.Background(), role))
ctx := middleware.SetUserContext(context.Background(), &middleware.UserContextInfo{
UserID: 1,
UserType: constants.UserTypeSuperAdmin,
})
t.Run("查询已分配角色", func(t *testing.T) {
require.NoError(t, shopRoleStore.Create(ctx, &model.ShopRole{
ShopID: shop.ID,
RoleID: role.ID,
Status: constants.StatusEnabled,
Creator: 1,
Updater: 1,
}))
result, err := service.GetShopRoles(ctx, shop.ID)
require.NoError(t, err)
assert.Len(t, result.Roles, 1)
assert.Equal(t, shop.ID, result.ShopID)
assert.Equal(t, role.ID, result.Roles[0].RoleID)
assert.Equal(t, "代理店长", result.Roles[0].RoleName)
})
t.Run("查询未分配角色的店铺", func(t *testing.T) {
emptyShop := &model.Shop{
ShopName: "空店铺",
ShopCode: "EMPTY_SHOP",
Level: 1,
Status: constants.StatusEnabled,
}
require.NoError(t, tx.Create(emptyShop).Error)
result, err := service.GetShopRoles(ctx, emptyShop.ID)
require.NoError(t, err)
assert.Empty(t, result.Roles)
})
t.Run("店铺不存在", func(t *testing.T) {
_, err := service.GetShopRoles(ctx, 99999)
require.Error(t, err)
assert.Contains(t, err.Error(), "店铺不存在")
})
}
func TestDeleteShopRole(t *testing.T) {
tx := testutils.NewTestTransaction(t)
rdb := testutils.GetTestRedis(t)
testutils.CleanTestRedisKeys(t, rdb)
shopStore := postgres.NewShopStore(tx, rdb)
accountStore := postgres.NewAccountStore(tx, rdb)
shopRoleStore := postgres.NewShopRoleStore(tx, rdb)
roleStore := postgres.NewRoleStore(tx)
service := New(shopStore, accountStore, shopRoleStore, roleStore)
shop := &model.Shop{
ShopName: "测试店铺3",
ShopCode: "TEST_SHOP_003",
Level: 1,
Status: constants.StatusEnabled,
}
require.NoError(t, tx.Create(shop).Error)
role := &model.Role{
RoleName: "代理店长",
RoleType: constants.RoleTypeCustomer,
Status: constants.StatusEnabled,
}
require.NoError(t, roleStore.Create(context.Background(), role))
ctx := middleware.SetUserContext(context.Background(), &middleware.UserContextInfo{
UserID: 1,
UserType: constants.UserTypeSuperAdmin,
})
t.Run("成功删除角色", func(t *testing.T) {
require.NoError(t, shopRoleStore.Create(ctx, &model.ShopRole{
ShopID: shop.ID,
RoleID: role.ID,
Status: constants.StatusEnabled,
Creator: 1,
Updater: 1,
}))
err := service.DeleteShopRole(ctx, shop.ID, role.ID)
require.NoError(t, err)
result, err := service.GetShopRoles(ctx, shop.ID)
require.NoError(t, err)
assert.Empty(t, result.Roles)
})
t.Run("删除不存在的角色关联(幂等)", func(t *testing.T) {
err := service.DeleteShopRole(ctx, shop.ID, role.ID)
require.NoError(t, err)
})
t.Run("店铺不存在", func(t *testing.T) {
err := service.DeleteShopRole(ctx, 99999, role.ID)
require.Error(t, err)
assert.Contains(t, err.Error(), "店铺不存在")
})
}