feat: 增加客户端采购员归属管理 (#54)
This commit is contained in:
@@ -593,7 +593,7 @@ func TestMigrate_v5新增会话表同步状态表和product_spec列(t *testing.T
|
||||
}
|
||||
}
|
||||
|
||||
func TestMigrate_v6新增用户和WebSession表(t *testing.T) {
|
||||
func TestMigrate_v6用户表与v7客户端归属表均存在(t *testing.T) {
|
||||
for _, c := range []struct {
|
||||
name string
|
||||
db *sql.DB
|
||||
@@ -608,7 +608,7 @@ func TestMigrate_v6新增用户和WebSession表(t *testing.T) {
|
||||
}
|
||||
}
|
||||
tables := existingTableSet(t, c.db)
|
||||
for _, table := range []string{"users", "web_sessions"} {
|
||||
for _, table := range []string{"users", "web_sessions", "client_user_assignments"} {
|
||||
if !tables[table] {
|
||||
t.Errorf("%s:迁移后应该有表 %s", c.name, table)
|
||||
}
|
||||
@@ -617,21 +617,21 @@ func TestMigrate_v6新增用户和WebSession表(t *testing.T) {
|
||||
if err := c.db.QueryRow("PRAGMA user_version").Scan(&version); err != nil {
|
||||
t.Fatalf("%s 读取 user_version 失败: %v", c.name, err)
|
||||
}
|
||||
if version != 6 {
|
||||
t.Errorf("%s user_version = %d,期望 6", c.name, version)
|
||||
if version != schemaVersion {
|
||||
t.Errorf("%s user_version = %d,期望 %d", c.name, version, schemaVersion)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// #52:网页登录上线后显式覆盖每一个已发布版本起点,证明 Client 现实库
|
||||
// 不会因为 v6 的用户表而卡在中间版本。v2 的两种历史结构另由上面的收敛
|
||||
// #52/#54:显式覆盖每一个已发布版本起点,证明 Client 现实库
|
||||
// 不会因为 v6/v7 的新增表而卡在中间版本。v2 的两种历史结构另由上面的收敛
|
||||
// 测试持续覆盖;这里验证顺序发布的 v1-v5 路径。
|
||||
func TestMigrate_v1到v5均可升级到v6(t *testing.T) {
|
||||
func TestMigrate_v1到v5均可升级到最新版本(t *testing.T) {
|
||||
for version := 1; version <= 5; version++ {
|
||||
t.Run(fmt.Sprintf("v%d", version), func(t *testing.T) {
|
||||
db := newPublishedVersionDB(t, version)
|
||||
if err := Migrate(db); err != nil {
|
||||
t.Fatalf("v%d 迁移到 v6 失败: %v", version, err)
|
||||
t.Fatalf("v%d 迁移到最新版本失败: %v", version, err)
|
||||
}
|
||||
if err := CheckSchema(db); err != nil {
|
||||
t.Fatalf("v%d 迁移后 schema 自检失败: %v", version, err)
|
||||
@@ -640,8 +640,8 @@ func TestMigrate_v1到v5均可升级到v6(t *testing.T) {
|
||||
if err := db.QueryRow(`PRAGMA user_version`).Scan(&gotVersion); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if gotVersion != 6 {
|
||||
t.Fatalf("v%d 迁移后 user_version = %d,期望 6", version, gotVersion)
|
||||
if gotVersion != schemaVersion {
|
||||
t.Fatalf("v%d 迁移后 user_version = %d,期望 %d", version, gotVersion, schemaVersion)
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -1120,7 +1120,7 @@ func TestCheckSchema_缺少v4关键列时拒绝(t *testing.T) {
|
||||
if err := migrateV3(db); err != nil {
|
||||
t.Fatalf("准备 v3 数据库失败: %v", err)
|
||||
}
|
||||
// 故意跳过 v4(不加 shop_name),但把 v5/v6 补上——否则 CheckSchema 会先
|
||||
// 故意跳过 v4(不加 shop_name),但把 v5-v7 补上——否则 CheckSchema 会先
|
||||
// 因为缺后续表报错,测不到本测试真正要覆盖的"缺 shop_name"这条路径。
|
||||
if err := runSQLMigration(db, 5, migrationV5); err != nil {
|
||||
t.Fatalf("准备 v5 数据库失败: %v", err)
|
||||
@@ -1128,6 +1128,9 @@ func TestCheckSchema_缺少v4关键列时拒绝(t *testing.T) {
|
||||
if err := runSQLMigration(db, 6, migrationV6); err != nil {
|
||||
t.Fatalf("准备 v6 数据库失败: %v", err)
|
||||
}
|
||||
if err := runSQLMigration(db, 7, migrationV7); err != nil {
|
||||
t.Fatalf("准备 v7 数据库失败: %v", err)
|
||||
}
|
||||
|
||||
err := CheckSchema(db)
|
||||
if err == nil || !strings.Contains(err.Error(), "shop_name") {
|
||||
|
||||
Reference in New Issue
Block a user