From 6f1df8350ae3f5440f42dc9d5939e04c12c7aaa4 Mon Sep 17 00:00:00 2001 From: fontvielle Date: Thu, 22 Oct 2026 11:38:00 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=BE=D1=80=D1=82=D1=84=D0=B5=D0=BB?= =?UTF-8?q?=D1=8C=20=D0=94=D0=95=D0=9F=D0=9E=20=D0=B2=20=D0=9B=D0=9A:=20?= =?UTF-8?q?=D0=BC=D0=B0=D1=80=D1=88=D1=80=D1=83=D1=82=D1=8B=20=D0=BA=D0=B0?= =?UTF-8?q?=D1=80=D1=82=D0=BE=D1=87=D0=BA=D0=B8=20=D0=BF=D0=BE=D0=B4=D0=BA?= =?UTF-8?q?=D0=BB=D1=8E=D1=87=D0=B5=D0=BD=D1=8B=20(=D0=B1=D1=8B=D0=BB?= =?UTF-8?q?=D0=B8=20404=20=D1=81=2029.09)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit registerLKPortfolioSync не вызывался: поиск клиента DEPO, «Залить сейчас», «Добавить в постоянное заполнение», «Включить…» и «Сохранить список» отвечали 404 — работала только фоновая сверка по сохранённым настройкам. Тест на регистрацию маршрутов. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn --- internal/lkgateway/lkportfolio_test.go | 22 +++++++++++++++++++++- internal/lkgateway/setup.go | 3 ++- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/internal/lkgateway/lkportfolio_test.go b/internal/lkgateway/lkportfolio_test.go index 225963d..240516e 100644 --- a/internal/lkgateway/lkportfolio_test.go +++ b/internal/lkgateway/lkportfolio_test.go @@ -1,6 +1,11 @@ package lkgateway -import "testing" +import ( + "net/http" + "net/http/httptest" + "path/filepath" + "testing" +) func TestLKPaperTypeAndPairs(t *testing.T) { for cfi, want := range map[string]string{"ESVXFR": "share", "EDSXFR": "depositary_receipt", "DBFXFR": "bond", "CEOGMR": "fund"} { @@ -30,3 +35,18 @@ func TestLKContractByAccount(t *testing.T) { t.Fatalf("другое именование: %q", got) } } + +// Маршруты карточки «Заполнение портфеля ДЕПО» зарегистрированы (29.09–22.10 их не было — 404). +func TestLKPortfolioRoutes(t *testing.T) { + mux := http.NewServeMux() + rc, err := NewRuntimeConfig(filepath.Join(t.TempDir(), "setup.json")) + if err != nil { + t.Fatal(err) + } + registerSetup(mux, &admin{}, rc, nil) + for _, p := range []string{"/admin/setup/lk-portfolio", "/admin/setup/lk-portfolio/clients"} { + if _, pat := mux.Handler(httptest.NewRequest("GET", p, nil)); pat != p { + t.Errorf("%s: маршрут %q", p, pat) + } + } +} diff --git a/internal/lkgateway/setup.go b/internal/lkgateway/setup.go index c1f964e..4cadbcd 100644 --- a/internal/lkgateway/setup.go +++ b/internal/lkgateway/setup.go @@ -48,7 +48,8 @@ type adminTemplates struct { // registerSetup вешает /admin/setup и /admin/setup/* (POST) на mux. func registerSetup(mux *http.ServeMux, a *admin, rc *RuntimeConfig, svc *Service) { h := &setupHandlers{rc: rc, tpl: &adminTemplates{a: a}, svc: svc} - go func() { // прогрев: версии компонентов, пользователи ЛК, раздел QUIK-экспорта + registerLKPortfolioSync(mux, rc) // портфель ДЕПО в ЛК: настройки, выбор клиента, «Залить сейчас» + go func() { // прогрев: версии компонентов, пользователи ЛК, раздел QUIK-экспорта time.Sleep(5 * time.Second) systemVersions(rc) lkUsersForSetup(rc)