bindbox-game/internal/service/douyin/order_sync_test.go
2026-04-20 15:53:31 +08:00

44 lines
1006 B
Go

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)
}
}