Тестирование M2M: количество бумаг выбирается в предпросмотре — сверка DEPO и отправка берут его

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
zuevav
2026-09-16 15:56:03 +03:00
parent cfd6dfa1e8
commit f35c72c50a
3 changed files with 80 additions and 9 deletions
+26
View File
@@ -0,0 +1,26 @@
package lkgateway
import (
"net/http/httptest"
"net/url"
"strings"
"testing"
)
func TestM2MQtyOverrides(t *testing.T) {
c := m2mCase{ID: "2", Secs: []m2mSec{sSBER("10"), {ISIN: "RU000A0JUR61", Code: "PAI", Qty: "5", Frac: true}}}
form := url.Values{"qty_RU0009029540": {"1"}, "qty_RU000A0JUR61": {"2,5"}}
r := httptest.NewRequest("POST", "/admin/m2m-testing/initiate", strings.NewReader(form.Encode()))
r.Header.Set("Content-Type", "application/x-www-form-urlencoded")
got := m2mQtyOverrides(r, c)
if got["RU0009029540"] != "1" || got["RU000A0JUR61"] != "2.5" {
t.Fatalf("количество: %v", got)
}
if note := m2mQtyNote(c, got); !strings.Contains(note, "SBER/03 × 1 (по плану 10)") {
t.Fatalf("отметка: %q", note)
}
bad := httptest.NewRequest("GET", "/?qty_RU0009029540=1.5&qty_RU000A0JUR61=-1", nil)
if got := m2mQtyOverrides(bad, c); len(got) != 0 {
t.Fatalf("дробное для акций и отрицательное — игнорировать: %v", got)
}
}