ИШ ставится при подготовке; на шаге «Шлюз НРД» — версия и «Установить заново»; ссылка на НРД вместо писем
- «Подготовка модулей»: ИШ нет на сервере — bj ставит его из дистрибутива на сервере (образ или обновление bj — версия, проверенная ZETIT), ход — в списке. - Шаг «Шлюз НРД»: установлен и работает — версия; не стоит или не работает — одна кнопка «Установить ИШ» / «Установить ИШ заново» (систему переставлять не нужно). «Скачать с сайта НРД» и «Установить из файла» — только в режиме разработки: версию ИШ меняем после своей проверки, вместе с обновлением bj. - Каналы TEST3 и боевого: до установки ИШ — «канал создаётся после установки ИШ», после — «Создать канал». - «Письма в НРД о доступе к контурам» убраны: НРД подключает заявкой на сайте — ссылка на «MOEX МОСТ для M2M», раздел «Как подключиться». Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
This commit is contained in:
@@ -314,8 +314,9 @@ func TestPrepareScreen(t *testing.T) {
|
||||
}
|
||||
}
|
||||
rc, _ := NewRuntimeConfig(t.TempDir() + "/setup.json")
|
||||
if items := prepareItems(rc, false, false, ""); len(items) != 2 || items[0].Title != "Обновление bj" || items[0].State != "wait" || items[1].State != "ok" {
|
||||
t.Fatalf("без лицензии — обновление (ещё не проверялось) и ядро: %+v", items)
|
||||
// ИШ — у любой установки: ставится при подготовке из проверенного дистрибутива на сервере
|
||||
if items := prepareItems(rc, false, false, ""); len(items) != 3 || items[0].Title != "Обновление bj" || items[0].State != "wait" || items[1].State != "ok" || !strings.Contains(items[2].Title, "Интеграционный шлюз") {
|
||||
t.Fatalf("без лицензии — обновление (ещё не проверялось), ядро и ИШ: %+v", items)
|
||||
}
|
||||
// выпуск, который подготовка уже ставила, после перезапуска bj не ставится по кругу
|
||||
oldTried := prepareTriedFile
|
||||
@@ -730,3 +731,30 @@ func TestQuikModeAndCertHint(t *testing.T) {
|
||||
t.Fatal("ошибка сертификата распознаётся, ошибка логина — нет")
|
||||
}
|
||||
}
|
||||
|
||||
// Ход установки ИШ для «Подготовки модулей»: идёт — пока установщик обновляет файл; молчит 20 минут — прервалась.
|
||||
func TestIgateInstallStatus(t *testing.T) {
|
||||
old := igateInstallStatusPath
|
||||
igateInstallStatusPath = filepath.Join(t.TempDir(), "st.json")
|
||||
defer func() { igateInstallStatusPath = old }()
|
||||
if st := igateInstallStatus(); st.Busy || st.Stage != "" {
|
||||
t.Fatalf("нет файла: %+v", st)
|
||||
}
|
||||
write := func(stage string, age time.Duration) {
|
||||
_ = os.WriteFile(igateInstallStatusPath, []byte(`{"stage":"`+stage+`","msg":"шаг"}`), 0o644)
|
||||
at := time.Now().Add(-age)
|
||||
_ = os.Chtimes(igateInstallStatusPath, at, at)
|
||||
}
|
||||
write("package", time.Minute)
|
||||
if st := igateInstallStatus(); !st.Busy {
|
||||
t.Fatalf("идёт: %+v", st)
|
||||
}
|
||||
write("package", 25*time.Minute)
|
||||
if st := igateInstallStatus(); st.Busy || st.Stage != "error" || !strings.Contains(st.Msg, "прервалась") {
|
||||
t.Fatalf("прервалась: %+v", st)
|
||||
}
|
||||
write("done", time.Hour)
|
||||
if st := igateInstallStatus(); st.Busy || st.Stage != "done" {
|
||||
t.Fatalf("готово: %+v", st)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user