44 lines
1006 B
Go
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)
|
|
}
|
|
}
|