test: починить тесты на Windows
- E2E (app): e2eFakeAPI переведён на v2 HTTP API opencode (/api/*) с определением агента по тексту промпта; Router получает processed-счётчик и WaitProcessed, e2eChannel.deliver ждёт асинхронную обработку — убирает гонку «запрос сразу после deliver» и коллатеральный 'database is closed'. - app_test: одинарные YAML-кавычки для путей Windows (backslash-escape) + закрытие Store в TestNew/TestNew_RunCtxCancel/TestNew_UpdateWiring. - config_test: абсолютный путь строится с корнем тома (C:\...) и одинарными кавычками YAML. - opencode/server_test: fakeServeBin на Windows — .cmd с ping (#!/bin/sh не исполняется). - worker_test: TestWorkerSemaphore поллит до целевого статуса вместо фиксированных sleep (git на Windows медленнее).
This commit is contained in:
@@ -25,6 +25,7 @@ func TestNew(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatalf("New() err = %v", err)
|
||||
}
|
||||
defer a.Store.Close()
|
||||
if a.Store == nil {
|
||||
t.Fatal("Store не создан")
|
||||
}
|
||||
@@ -87,6 +88,7 @@ func TestNew_RunCtxCancel(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatalf("New() err = %v", err)
|
||||
}
|
||||
defer a.Store.Close()
|
||||
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
cancel() // сразу отменяем
|
||||
@@ -120,8 +122,8 @@ func TestNew_WorktreeCreated(t *testing.T) {
|
||||
" token: \"test:token\"",
|
||||
" chat_id: \"12345\"",
|
||||
"paths:",
|
||||
" db: \"" + filepath.Join(tmp, "test.db") + "\"",
|
||||
" worktree: \"" + wt + "\"",
|
||||
" db: '" + filepath.Join(tmp, "test.db") + "'",
|
||||
" worktree: '" + wt + "'",
|
||||
"",
|
||||
}, "\n")
|
||||
if err := os.WriteFile(configPath, []byte(content), 0o600); err != nil {
|
||||
@@ -165,7 +167,7 @@ func TestNew_UpdateWiring(t *testing.T) {
|
||||
" base_url: \"https://hub.example.com\"",
|
||||
" token: \"cfg-update-token\"",
|
||||
"paths:",
|
||||
" db: \"" + dbPath + "\"",
|
||||
" db: '" + dbPath + "'",
|
||||
"", // пустая строка в конце
|
||||
}, "\n")
|
||||
if err := os.WriteFile(configPath, []byte(content), 0o600); err != nil {
|
||||
@@ -177,6 +179,7 @@ func TestNew_UpdateWiring(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatalf("New() err = %v", err)
|
||||
}
|
||||
defer a.Store.Close()
|
||||
if a.Updater == nil {
|
||||
t.Fatal("Updater не создан")
|
||||
}
|
||||
@@ -197,6 +200,7 @@ func TestNew_UpdateWiring(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatalf("New() err = %v", err)
|
||||
}
|
||||
defer a2.Store.Close()
|
||||
if a2.Updater.Token != "embedded-update-token" {
|
||||
t.Errorf("Token = %q, want embedded-update-token (вшитый приоритетнее)", a2.Updater.Token)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user