Канал ИШ: необязательные параметры — NULL (иначе ИШ молча выкидывал канал); мастер: шаг «Учётные записи», HTTPS сразу, DEPO без процедур — не блокирует
- bj-igate-admin: пустые строки в числовых/интервальных параметрах канала ИШ разбирал с ошибкой и не загружал канал («There are no active channels», API 500 «more than one Channel…»); теперь NULL, как пишет интерфейс ИШ; старые каналы чинятся при «Создать канал»; папка архивов 1042S — по имени - проверка «Шлюз НРД»: канал контура действительно загружен и включён (api/admin/channels/wsl) - «Учёт DEPO»: нет процедур bj2depo — жёлтое «не забудьте доустановить», не блокирует - HTTPS: перенаправление с http:// включено по умолчанию, только когда HTTPS реально слушает порт - мастер: шаг «Учётные записи» (роли, создание, «Придумать пароль») перед проверкой; письма с проверки убраны; форма «создать» не меняет существующую запись с тем же логином Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
This commit is contained in:
@@ -126,9 +126,19 @@ func TestHTTPSSelfSignedAndRedirect(t *testing.T) {
|
||||
if _, err := loadTLSCert(nil); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
rc, _ := NewRuntimeConfig(t.TempDir() + "/setup.json")
|
||||
_ = rc.UpdateHTTPS(HTTPSSettings{Redirect: true})
|
||||
rc, _ := NewRuntimeConfig(t.TempDir() + "/setup.json") // перенаправление — по умолчанию, без настройки
|
||||
h := httpsRedirect(rc, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusTeapot) }))
|
||||
httpsUp.Store(false) // HTTPS не поднялся — не перенаправляем, иначе в bj не войти
|
||||
if rec := httptest.NewRecorder(); func() int {
|
||||
req := httptest.NewRequest(http.MethodGet, "http://10.10.10.6:8080/admin/setup", nil)
|
||||
req.RemoteAddr = "10.10.10.5:5000"
|
||||
h.ServeHTTP(rec, req)
|
||||
return rec.Code
|
||||
}() != http.StatusTeapot {
|
||||
t.Fatal("без работающего HTTPS перенаправлять нельзя")
|
||||
}
|
||||
httpsUp.Store(true)
|
||||
defer httpsUp.Store(false)
|
||||
cases := []struct {
|
||||
path, remote string
|
||||
want int
|
||||
@@ -150,6 +160,14 @@ func TestHTTPSSelfSignedAndRedirect(t *testing.T) {
|
||||
t.Errorf("перенаправление: %s", rec.Header().Get("Location"))
|
||||
}
|
||||
}
|
||||
_ = rc.UpdateHTTPS(HTTPSSettings{RedirectOff: true}) // выключено в настройках
|
||||
req := httptest.NewRequest(http.MethodGet, "http://10.10.10.6:8080/admin/setup", nil)
|
||||
req.RemoteAddr = "10.10.10.5:5000"
|
||||
rec := httptest.NewRecorder()
|
||||
h.ServeHTTP(rec, req)
|
||||
if rec.Code != http.StatusTeapot {
|
||||
t.Errorf("выключенное перенаправление: %d", rec.Code)
|
||||
}
|
||||
}
|
||||
|
||||
func TestReceiverUnknownRejected(t *testing.T) {
|
||||
@@ -192,7 +210,7 @@ func TestWizardChaptersWithoutLicense(t *testing.T) {
|
||||
rc, _ := NewRuntimeConfig(t.TempDir() + "/setup.json")
|
||||
done := map[int]bool{2: true, 6: true}
|
||||
path, chapters := wizPath(rc, done, 4)
|
||||
want := []int{1, 12, 4, 7, 8, 9, 10} // без лицензии нет учёта DEPO, QUIK и модулей; база и Валидата — сделаны
|
||||
want := []int{1, 12, 4, 7, 8, 9, 13, 10} // без лицензии нет учёта DEPO, QUIK и модулей; база и Валидата — сделаны; учётные записи — перед проверкой
|
||||
if fmt.Sprint(path) != fmt.Sprint(want) {
|
||||
t.Fatalf("путь %v, ожидался %v", path, want)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user