fix: generate ai table docx exports
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
package httpapi
|
||||
|
||||
import (
|
||||
"archive/zip"
|
||||
"bytes"
|
||||
"io"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"git.118im.com/im_team/im_workbench/internal/store"
|
||||
)
|
||||
|
||||
func TestAITableAnalysisDocx(t *testing.T) {
|
||||
docx, err := aiTableAnalysisDocx(&store.AITableAnalysis{
|
||||
RecordID: "airec_tbl_test",
|
||||
FileName: "sales.xlsx",
|
||||
FileType: "xlsx",
|
||||
FileSize: 1234,
|
||||
Topic: "销售数据",
|
||||
MetricsJSON: `[{"name":"销售额","value":"12万","change_text":"+10%","trend":"up"}]`,
|
||||
AlertsJSON: `[{"level":"warning","title":"异常波动","description":"订单量下降"}]`,
|
||||
Interpretation: "整体销售额增长。",
|
||||
CreatedAt: time.Date(2026, 9, 29, 8, 0, 0, 0, time.UTC),
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
zr, err := zip.NewReader(bytes.NewReader(docx), int64(len(docx)))
|
||||
if err != nil {
|
||||
t.Fatalf("docx is not a zip: %v", err)
|
||||
}
|
||||
var document string
|
||||
for _, file := range zr.File {
|
||||
if file.Name != "word/document.xml" {
|
||||
continue
|
||||
}
|
||||
rc, err := file.Open()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
data, err := io.ReadAll(rc)
|
||||
_ = rc.Close()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
document = string(data)
|
||||
break
|
||||
}
|
||||
for _, want := range []string{"销售数据", "销售额", "异常波动", "整体销售额增长"} {
|
||||
if !strings.Contains(document, want) {
|
||||
t.Fatalf("document.xml missing %q: %s", want, document)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user