2026-01-12 03:00:48 -08:00
|
|
|
//go:build never
|
|
|
|
|
// +build never
|
2026-01-25 05:30:43 -08:00
|
|
|
package documents
|
|
|
|
|
package documents
|
2026-01-12 03:00:48 -08:00
|
|
|
|
|
|
|
|
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")
|
|
|
|
|
}
|
|
|
|
|
}
|