package lkgateway 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"} { if got := lkPaperType(cfi, ""); got != want { t.Fatalf("%s: %s", cfi, got) } } if lkPaperType("", "ОФЗ 26238 ПД обл") != "bond" || lkPaperType("", "БПИФ «Ликвидность» фонд") != "fund" { t.Fatal("по названию") } p := LKPortfolioSyncSettings{Pairs: "ДД-816=БР-859; мусор ;ДД-1 = БР-1"}.pairs() if len(p) != 2 || p[0].LK != "ДД-816" || p[0].Depo != "БР-859" || p[1].Depo != "БР-1" { t.Fatalf("%+v", p) } } func TestLKContractByAccount(t *testing.T) { def := LKPortfolioSyncSettings{} if got := lkContractByAccount(def, "ВТНКЦ00000816"); got != "ДД-816" { t.Fatalf("по умолчанию: %q", got) } if got := lkContractByAccount(def, "В00000816"); got != "" { t.Fatalf("не торговый счёт: %q", got) } other := LKPortfolioSyncSettings{AccountPrefix: "TR-", ContractTemplate: "D/{n}/2024"} if got := lkContractByAccount(other, "TR-0042"); got != "D/42/2024" { 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) } } }