package douyin import ( "context" "strings" "testing" "bindbox-game/internal/pkg/logger" "bindbox-game/internal/repository/mysql" ) func TestSyncUserOrders_RejectsUserWithoutBinding(t *testing.T) { repo, err := mysql.NewSQLiteRepoForTest() if err != nil { t.Fatal(err) } if err := repo.GetDbW().Exec(`CREATE TABLE users ( id INTEGER PRIMARY KEY, nickname TEXT, douyin_user_id TEXT, deleted_at DATETIME )`).Error; err != nil { t.Fatal(err) } if err := repo.GetDbW().Exec(`INSERT INTO users (id, nickname, douyin_user_id) VALUES (1, 'tester', '')`).Error; err != nil { t.Fatal(err) } lg, err := logger.NewCustomLogger(logger.WithOutputInConsole()) if err != nil { t.Fatal(err) } svc := New(lg, repo, nil, nil, nil, nil).(*service) _, err = svc.SyncUserOrders(context.Background(), 1) if err == nil { t.Fatal("expected error for user without douyin binding") } if !strings.Contains(err.Error(), "未绑定抖音号") { t.Fatalf("unexpected error: %v", err) } }