WitNote / internal /cli /actions /actions_pdf_test.go
AUXteam's picture
Upload folder using huggingface_hub
6a7089a verified
package actions
import (
"os"
"path/filepath"
"strings"
"testing"
"github.com/spf13/cobra"
)
func newPDFCmd() *cobra.Command {
cmd := &cobra.Command{}
cmd.Flags().String("output", "", "")
cmd.Flags().String("tab", "", "")
cmd.Flags().Bool("landscape", false, "")
cmd.Flags().String("scale", "", "")
cmd.Flags().String("paper-width", "", "")
cmd.Flags().String("paper-height", "", "")
cmd.Flags().String("margin-top", "", "")
cmd.Flags().String("margin-bottom", "", "")
cmd.Flags().String("margin-left", "", "")
cmd.Flags().String("margin-right", "", "")
cmd.Flags().String("page-ranges", "", "")
cmd.Flags().Bool("prefer-css-page-size", false, "")
cmd.Flags().Bool("display-header-footer", false, "")
cmd.Flags().String("header-template", "", "")
cmd.Flags().String("footer-template", "", "")
cmd.Flags().Bool("generate-tagged-pdf", false, "")
cmd.Flags().Bool("generate-document-outline", false, "")
cmd.Flags().Bool("file-output", false, "")
cmd.Flags().String("path", "", "")
return cmd
}
func TestPDF(t *testing.T) {
m := newMockServer()
m.response = "FAKEPDFDATA"
defer m.close()
client := m.server.Client()
outFile := filepath.Join(t.TempDir(), "test.pdf")
cmd := newPDFCmd()
_ = cmd.Flags().Set("output", outFile)
_ = cmd.Flags().Set("tab", "tab-abc")
_ = cmd.Flags().Set("landscape", "true")
_ = cmd.Flags().Set("scale", "0.8")
PDF(client, m.base(), "", cmd)
if m.lastPath != "/tabs/tab-abc/pdf" {
t.Errorf("expected /tabs/tab-abc/pdf, got %s", m.lastPath)
}
if !strings.Contains(m.lastQuery, "landscape=true") {
t.Errorf("expected landscape=true, got %s", m.lastQuery)
}
if !strings.Contains(m.lastQuery, "scale=0.8") {
t.Errorf("expected scale=0.8, got %s", m.lastQuery)
}
data, err := os.ReadFile(outFile)
if err != nil {
t.Fatalf("file not written: %v", err)
}
if string(data) != "FAKEPDFDATA" {
t.Errorf("unexpected content: %s", string(data))
}
}
func TestPDFAllOptions(t *testing.T) {
m := newMockServer()
m.response = "FAKEPDFDATA"
defer m.close()
client := m.server.Client()
outFile := filepath.Join(t.TempDir(), "test.pdf")
cmd := newPDFCmd()
_ = cmd.Flags().Set("output", outFile)
_ = cmd.Flags().Set("tab", "tab-123")
_ = cmd.Flags().Set("landscape", "true")
_ = cmd.Flags().Set("scale", "1.5")
_ = cmd.Flags().Set("paper-width", "11")
_ = cmd.Flags().Set("paper-height", "8.5")
_ = cmd.Flags().Set("margin-top", "1")
_ = cmd.Flags().Set("margin-bottom", "1")
_ = cmd.Flags().Set("margin-left", "0.5")
_ = cmd.Flags().Set("margin-right", "0.5")
_ = cmd.Flags().Set("page-ranges", "1-3,5")
_ = cmd.Flags().Set("prefer-css-page-size", "true")
_ = cmd.Flags().Set("display-header-footer", "true")
_ = cmd.Flags().Set("header-template", "<span class='title'></span>")
_ = cmd.Flags().Set("footer-template", "<span class='pageNumber'></span>")
_ = cmd.Flags().Set("generate-tagged-pdf", "true")
_ = cmd.Flags().Set("generate-document-outline", "true")
PDF(client, m.base(), "", cmd)
if m.lastPath != "/tabs/tab-123/pdf" {
t.Errorf("expected /tabs/tab-123/pdf, got %s", m.lastPath)
}
expectedParams := []string{
"landscape=true",
"scale=1.5",
"paperWidth=11",
"paperHeight=8.5",
"marginTop=1",
"marginBottom=1",
"marginLeft=0.5",
"marginRight=0.5",
"preferCSSPageSize=true",
"displayHeaderFooter=true",
"generateTaggedPDF=true",
"generateDocumentOutline=true",
"raw=true",
}
for _, expected := range expectedParams {
if !strings.Contains(m.lastQuery, expected) {
t.Errorf("expected %s in query, got %s", expected, m.lastQuery)
}
}
}