Кабинет: операции по счетам депо и доходы с удержанным налогом из учётной системы
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -53,6 +53,26 @@ func fakeBJ(t *testing.T) *httptest.Server {
|
||||
}})
|
||||
}
|
||||
})
|
||||
mux.HandleFunc("/api/lk/operations", func(w http.ResponseWriter, r *http.Request) {
|
||||
if keyOK(w, r) && r.Header.Get("X-BJ-Session") == "sess-1" {
|
||||
_ = json.NewEncoder(w).Encode(map[string]any{"operations": []any{
|
||||
map[string]any{"date": "16.09.2026", "kind": "зачисление", "number": "260915/1", "account": "ВТНКЦ00000001",
|
||||
"isin": "RU0009029540", "security": "Сбербанк, ао", "quantity": 100, "state": "исполнено", "note": "Отчёт клиринговой организации"},
|
||||
map[string]any{"date": "14.08.2026", "kind": "списание", "account": "ВТНКЦ00000001", "isin": "RU000A1014L8",
|
||||
"security": "Ликвидность, пай", "quantity": -120, "state": "исполнено"},
|
||||
}})
|
||||
}
|
||||
})
|
||||
mux.HandleFunc("/api/lk/income", func(w http.ResponseWriter, r *http.Request) {
|
||||
if keyOK(w, r) && r.Header.Get("X-BJ-Session") == "sess-1" {
|
||||
_ = json.NewEncoder(w).Encode(map[string]any{"accrued": 540.6, "paid": 494.6, "tax": 46.0, "income": []any{
|
||||
map[string]any{"date": "02.06.2026", "kind": "дивиденды", "isin": "RU000A106YF0", "security": "ВК, ао",
|
||||
"quantity": 5, "accrued": 45, "tax": 6, "paid": 39},
|
||||
map[string]any{"date": "03.06.2026", "kind": "купон", "isin": "RU000A1038V6", "security": "ОФЗ 26238",
|
||||
"accrued": 495.6, "tax": 0, "paid": 495.6},
|
||||
}})
|
||||
}
|
||||
})
|
||||
mux.HandleFunc("/api/lk/ping", func(w http.ResponseWriter, r *http.Request) {
|
||||
if keyOK(w, r) {
|
||||
_ = json.NewEncoder(w).Encode(map[string]any{"ok": true})
|
||||
@@ -195,6 +215,18 @@ func TestBoardPages(t *testing.T) {
|
||||
t.Errorf("в карточке бумаги нет %q", want)
|
||||
}
|
||||
}
|
||||
ops := get("/operations")
|
||||
for _, want := range []string{"Операции по счетам депо", "зачисление", "Ликвидность, пай", "Отчёт клиринговой организации"} {
|
||||
if !strings.Contains(ops, want) {
|
||||
t.Errorf("в операциях нет %q", want)
|
||||
}
|
||||
}
|
||||
inc := get("/income")
|
||||
for _, want := range []string{"Выплачено дохода", "494,60 ₽", "Удержан налог", "дивиденды"} {
|
||||
if !strings.Contains(inc, want) {
|
||||
t.Errorf("в доходах нет %q", want)
|
||||
}
|
||||
}
|
||||
prof := get("/profile")
|
||||
if !strings.Contains(prof, "Счета депо") || !strings.Contains(prof, "ВТНКЦ00000001") {
|
||||
t.Errorf("профиль: %s", prof)
|
||||
|
||||
Reference in New Issue
Block a user