cmc-sales/go/internal/cmc/pdf/merge_test.go

73 lines
2 KiB
Go

//go:build never
// +build never
package pdf
package pdf
import (
"os"
"path/filepath"
"testing"
"github.com/jung-kurt/gofpdf"
)
func createDummyPDF(path string, title string) error {
pdf := gofpdf.New("P", "mm", "A4", "")
pdf.AddPage()
pdf.SetFont("Helvetica", "", 12)
pdf.CellFormat(0, 10, title, "", 1, "L", false, 0, "")
return pdf.OutputFileAndClose(path)
}
func TestFinalizeWithTerms_WhenTermsMissingFallsBack(t *testing.T) {
dir := t.TempDir()
tmp := "doc.__tmp__.pdf"
final := "doc.pdf"
// Create tmp PDF
if err := createDummyPDF(filepath.Join(dir, tmp), "tmp"); err != nil {
t.Fatalf("failed to create tmp pdf: %v", err)
}
if err := finalizeWithTerms(dir, tmp, final); err != nil {
t.Fatalf("finalizeWithTerms error: %v", err)
}
if _, err := os.Stat(filepath.Join(dir, final)); err != nil {
t.Fatalf("final pdf not created: %v", err)
}
if _, err := os.Stat(filepath.Join(dir, tmp)); !os.IsNotExist(err) {
t.Fatalf("tmp pdf should be removed after finalize")
}
}
func TestFinalizeWithTermsAndExtras_MergesAll(t *testing.T) {
dir := t.TempDir()
tmp := "doc.__tmp__.pdf"
final := "doc.pdf"
terms := filepath.Join(dir, "CMC_terms_and_conditions2006_A4.pdf")
extra := filepath.Join(dir, "extra.pdf")
if err := createDummyPDF(filepath.Join(dir, tmp), "tmp"); err != nil {
t.Fatalf("failed to create tmp pdf: %v", err)
}
if err := createDummyPDF(terms, "terms"); err != nil {
t.Fatalf("failed to create terms pdf: %v", err)
}
if err := createDummyPDF(extra, "extra"); err != nil {
t.Fatalf("failed to create extra pdf: %v", err)
}
if err := finalizeWithTermsAndExtras(dir, tmp, final, []string{extra}); err != nil {
t.Fatalf("finalizeWithTermsAndExtras error: %v", err)
}
st, err := os.Stat(filepath.Join(dir, final))
if err != nil {
t.Fatalf("final pdf not created: %v", err)
}
if st.Size() <= 0 {
t.Fatalf("final pdf has zero size")
}
}