feat: 支持顺运宝多订单号搜索 (#217)
This commit is contained in:
@@ -1,8 +1,10 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"net/url"
|
||||
"os"
|
||||
"strings"
|
||||
"testing"
|
||||
@@ -658,6 +660,41 @@ func TestMainPagesReturnOK(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatalf("准备顺运宝详情测试数据失败: %v", err)
|
||||
}
|
||||
multiOrderRequest := httptest.NewRequest(http.MethodGet,
|
||||
"/syb?order_no="+url.QueryEscape("ORDER-PDD-ID-INPUT\nNOT-FOUND"), nil)
|
||||
addAuth(multiOrderRequest)
|
||||
multiOrderResponse := httptest.NewRecorder()
|
||||
router.ServeHTTP(multiOrderResponse, multiOrderRequest)
|
||||
multiOrderBody := multiOrderResponse.Body.String()
|
||||
if multiOrderResponse.Code != http.StatusOK {
|
||||
t.Fatalf("多订单号搜索应返回页面,实际 %d:%s", multiOrderResponse.Code, multiOrderBody)
|
||||
}
|
||||
for _, want := range []string{
|
||||
`>ORDER-PDD-ID-INPUT,NOT-FOUND</textarea>`,
|
||||
"已输入 2 个订单号", "当前筛选命中 1 个订单、1 条商品明细", "当前筛选未命中:NOT-FOUND",
|
||||
} {
|
||||
if !strings.Contains(multiOrderBody, want) {
|
||||
t.Errorf("多订单号搜索响应缺少 %q", want)
|
||||
}
|
||||
}
|
||||
|
||||
tooManyOrderNos := make([]string, 101)
|
||||
for i := range tooManyOrderNos {
|
||||
tooManyOrderNos[i] = fmt.Sprintf("ORDER-%03d", i)
|
||||
}
|
||||
invalidOrderRequest := httptest.NewRequest(http.MethodGet,
|
||||
"/syb?order_no="+url.QueryEscape(strings.Join(tooManyOrderNos, ",")), nil)
|
||||
addAuth(invalidOrderRequest)
|
||||
invalidOrderResponse := httptest.NewRecorder()
|
||||
router.ServeHTTP(invalidOrderResponse, invalidOrderRequest)
|
||||
invalidOrderBody := invalidOrderResponse.Body.String()
|
||||
if invalidOrderResponse.Code != http.StatusOK ||
|
||||
!strings.Contains(invalidOrderBody, "一次最多搜索 100 个不同订单号") ||
|
||||
!strings.Contains(invalidOrderBody, `aria-invalid="true"`) {
|
||||
t.Fatalf("超量订单号应在页面就地提示且不返回 500,实际 %d:%s",
|
||||
invalidOrderResponse.Code, invalidOrderBody)
|
||||
}
|
||||
|
||||
detailRequest := httptest.NewRequest(http.MethodGet, "/syb/detail?id=SYB-PDD-ID-INPUT", nil)
|
||||
addAuth(detailRequest)
|
||||
detailResponse := httptest.NewRecorder()
|
||||
@@ -778,3 +815,21 @@ func TestModalBackdropRequiresPointerStart(t *testing.T) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestSybOrderSearch_回车搜索且Shift回车保留换行(t *testing.T) {
|
||||
js, err := staticFS.ReadFile("static/js/app.js")
|
||||
if err != nil {
|
||||
t.Fatalf("读取公共 JavaScript 失败: %v", err)
|
||||
}
|
||||
source := string(js)
|
||||
for _, want := range []string{
|
||||
`document.querySelector("[data-syb-order-search]")`,
|
||||
`event.key !== "Enter" || event.shiftKey || event.isComposing`,
|
||||
`input.form.requestSubmit()`,
|
||||
`setupSybOrderSearch();`,
|
||||
} {
|
||||
if !strings.Contains(source, want) {
|
||||
t.Errorf("多订单号搜索缺少键盘守卫 %q", want)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user