//go:build never // +build never package documents package documents 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") } }