Учёт DEPO в мастере: четыре вопроса по порядку, скрипт собирается сам из ответов

СУБД → сервер, порт и имя базы → где запускать обработку обмена → логин
администратора или скрипт. Выбор плитками, под ним — поля выбранного способа
и своя кнопка. Скрипт показывается сразу и пересобирается при любой правке
выше (без кнопки «Обновить»), собирается и до адреса сервера (без адреса не
сохраняется).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
This commit is contained in:
zuevav
2026-10-06 14:53:12 +03:00
parent 879cf4f09e
commit e191817a14
3 changed files with 160 additions and 64 deletions
+19
View File
@@ -494,4 +494,23 @@ func TestDepoScriptView(t *testing.T) {
if w := post(form); w.Code != http.StatusBadRequest || !strings.Contains(w.Body.String(), "8 знаков") {
t.Fatalf("короткий пароль: %d %s", w.Code, w.Body.String())
}
// экран пересобирает скрипт на ходу — и до того, как вписан адрес сервера; без адреса ничего не сохраняется
form.Set("bj_password", "Other123x")
form.Set("server", "")
if w := post(form); w.Code != http.StatusOK || !strings.Contains(w.Body.String(), "N'Other123x';") {
t.Fatalf("скрипт без адреса сервера: %d %s", w.Code, w.Body.String())
}
if f := rc.Snapshot().Fancy; f.Server != "10.0.0.5" || f.Password != "Secret123x" {
t.Fatalf("без адреса сервера настройки не должны меняться: %q", f.Server)
}
// PostgreSQL — свой скрипт; без имени базы — понятная причина вместо скрипта
form.Set("db_type", "postgres")
form.Set("depo_database", "")
if w := post(form); w.Code != http.StatusBadRequest || !strings.Contains(w.Body.String(), "имя базы") {
t.Fatalf("PostgreSQL без базы: %d %s", w.Code, w.Body.String())
}
form.Set("depo_database", "depo")
if w := post(form); w.Code != http.StatusOK || !strings.Contains(w.Body.String(), "PostgreSQL") {
t.Fatalf("PostgreSQL: %d %s", w.Code, w.Body.String())
}
}