diff --git a/internal/app/app_test.go b/internal/app/app_test.go index afe3d72..891f41f 100644 --- a/internal/app/app_test.go +++ b/internal/app/app_test.go @@ -17,8 +17,6 @@ func TestNew(t *testing.T) { // Настраиваем минимальные env для обязательных полей t.Setenv("TG_TOKEN", "test:token") t.Setenv("TG_CHAT_ID", "12345") - t.Setenv("GITEA_URL", "http://gitea.test") - t.Setenv("GITEA_TOKEN", "test-token") t.Setenv("RATATOSKR_DB", dbPath) // Загружаем без config-файла (дефолты + env) @@ -50,8 +48,6 @@ func TestNew_MissingToken(t *testing.T) { dbPath := filepath.Join(tmp, "test.db") t.Setenv("TG_TOKEN", "") t.Setenv("TG_CHAT_ID", "12345") - t.Setenv("GITEA_URL", "http://gitea.test") - t.Setenv("GITEA_TOKEN", "test-token") t.Setenv("RATATOSKR_DB", dbPath) _, err := New("") @@ -67,8 +63,6 @@ func TestNew_BadDB(t *testing.T) { dbPath := filepath.Join(tmp, "nonexistent", "test.db") // родителя нет t.Setenv("TG_TOKEN", "test:token") t.Setenv("TG_CHAT_ID", "12345") - t.Setenv("GITEA_URL", "http://gitea.test") - t.Setenv("GITEA_TOKEN", "test-token") t.Setenv("RATATOSKR_DB", dbPath) _, err := New("") @@ -86,8 +80,6 @@ func TestNew_RunCtxCancel(t *testing.T) { dbPath := filepath.Join(tmp, "test-runcancel.db") t.Setenv("TG_TOKEN", "test:token") t.Setenv("TG_CHAT_ID", "12345") - t.Setenv("GITEA_URL", "http://gitea.test") - t.Setenv("GITEA_TOKEN", "test-token") t.Setenv("RATATOSKR_DB", dbPath) a, err := New("") diff --git a/internal/config/config_test.go b/internal/config/config_test.go index 90c4e7c..1a34159 100644 --- a/internal/config/config_test.go +++ b/internal/config/config_test.go @@ -22,20 +22,12 @@ func writeCfg(t *testing.T, content string) string { func TestLoad_FullConfig(t *testing.T) { t.Setenv("TG_TOKEN", "tok123") - t.Setenv("GITEA_URL", "http://gitea.home") - t.Setenv("GITEA_TOKEN", "gtok") - t.Setenv("GITEA_USER", "kamelion") yaml := ` telegram: token: "${TG_TOKEN}" chat_id: "123" -gitea: - url: "${GITEA_URL}" - token: "${GITEA_TOKEN}" - user: "${GITEA_USER}" - opencode: bin: "my-opencode" hard_timeout: "10m" @@ -51,9 +43,6 @@ opencode: if cfg.Telegram.ChatID != "123" { t.Errorf("tg chat_id = %q", cfg.Telegram.ChatID) } - if cfg.Gitea.URL != "http://gitea.home" { - t.Errorf("gitea url = %q", cfg.Gitea.URL) - } if cfg.OpenCode.Bin != "my-opencode" { t.Errorf("opencode bin = %q", cfg.OpenCode.Bin) } @@ -65,19 +54,11 @@ opencode: func TestLoad_Defaults(t *testing.T) { t.Setenv("TG_TOKEN", "tok") t.Setenv("TG_CHAT_ID", "42") - t.Setenv("GITEA_URL", "http://x") - t.Setenv("GITEA_TOKEN", "secret") - t.Setenv("GITEA_USER", "u") yaml := ` telegram: token: "${TG_TOKEN}" chat_id: "${TG_CHAT_ID}" - -gitea: - url: "${GITEA_URL}" - token: "${GITEA_TOKEN}" - user: "${GITEA_USER}" ` path := writeCfg(t, yaml) cfg, err := Load(path) @@ -102,19 +83,12 @@ gitea: func TestLoad_EnvOverride(t *testing.T) { t.Setenv("TG_TOKEN", "tok") t.Setenv("TG_CHAT_ID", "42") - t.Setenv("GITEA_URL", "http://x") - t.Setenv("GITEA_TOKEN", "secret") - t.Setenv("GITEA_USER", "u") // env override для opencode.timeout t.Setenv("OPENCODE_CONFIG", "/custom/opencode.json") yaml := `telegram: token: "${TG_TOKEN}" chat_id: "${TG_CHAT_ID}" -gitea: - url: "${GITEA_URL}" - token: "${GITEA_TOKEN}" - user: "${GITEA_USER}" ` path := writeCfg(t, yaml) cfg, err := Load(path) @@ -129,17 +103,10 @@ gitea: func TestLoad_MissingEnvVarUsesDefault(t *testing.T) { t.Setenv("TG_TOKEN", "tok") t.Setenv("TG_CHAT_ID", "42") - t.Setenv("GITEA_URL", "http://x") - t.Setenv("GITEA_TOKEN", "secret") - t.Setenv("GITEA_USER", "u") yaml := `telegram: token: "${TG_TOKEN}" chat_id: "${TG_CHAT_ID}" -gitea: - url: "${GITEA_URL}" - token: "${GITEA_TOKEN}" - user: "${GITEA_USER}" opencode: db_path: "${OPENCODE_DB:-/default/db.sqlite}" ` @@ -162,19 +129,12 @@ func TestLoad_FileNotFound(t *testing.T) { func TestLoad_MissingRequired(t *testing.T) { // пустой конфиг — все обязательные поля отсутствуют - t.Setenv("GITEA_URL", "") // не ставим - t.Setenv("GITEA_TOKEN", "") t.Setenv("TG_TOKEN", "") t.Setenv("TG_CHAT_ID", "") - t.Setenv("GITEA_USER", "") yaml := `telegram: token: "" chat_id: "" -gitea: - url: "" - token: "" - user: "" ` path := writeCfg(t, yaml) _, err := Load(path) @@ -184,22 +144,18 @@ gitea: if !strings.Contains(err.Error(), "telegram.token") { t.Errorf("ожидалось telegram.token в ошибке, got %v", err) } + if !strings.Contains(err.Error(), "telegram.chat_id") { + t.Errorf("ожидалось telegram.chat_id в ошибке, got %v", err) + } } func TestLoad_InvalidDuration(t *testing.T) { t.Setenv("TG_TOKEN", "x") t.Setenv("TG_CHAT_ID", "x") - t.Setenv("GITEA_URL", "x") - t.Setenv("GITEA_TOKEN", "x") - t.Setenv("GITEA_USER", "x") yaml := `telegram: token: "x" chat_id: "x" -gitea: - url: "x" - token: "x" - user: "x" opencode: hard_timeout: "не-длительность" ` diff --git a/internal/config/types.go b/internal/config/types.go index d2691bf..45ac3f8 100644 --- a/internal/config/types.go +++ b/internal/config/types.go @@ -35,7 +35,6 @@ func (d *Duration) UnmarshalYAML(unmarshal func(any) error) error { // Config — полная конфигурация бинаря. type Config struct { Telegram TelegramCfg `yaml:"telegram"` - Gitea GiteaCfg `yaml:"gitea"` OpenCode OpenCodeCfg `yaml:"opencode"` Chat ChatCfg `yaml:"chat"` Paths PathsCfg `yaml:"paths"` @@ -46,12 +45,6 @@ type TelegramCfg struct { ChatID string `yaml:"chat_id" env:"TG_CHAT_ID"` } -type GiteaCfg struct { - URL string `yaml:"url" env:"GITEA_URL"` - Token string `yaml:"token" env:"GITEA_TOKEN"` - User string `yaml:"user" env:"GITEA_USER"` -} - type OpenCodeCfg struct { Bin string `yaml:"bin" default:"opencode"` DBPath string `yaml:"db_path" default:""` @@ -80,11 +73,5 @@ func (c *Config) Validate() error { if c.Telegram.ChatID == "" { errs = append(errs, fmt.Errorf("%w: telegram.chat_id", ErrMissingField)) } - if c.Gitea.URL == "" { - errs = append(errs, fmt.Errorf("%w: gitea.url", ErrMissingField)) - } - if c.Gitea.Token == "" { - errs = append(errs, fmt.Errorf("%w: gitea.token", ErrMissingField)) - } return errors.Join(errs...) } \ No newline at end of file