add function convert html
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package html2pdf
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
@@ -57,3 +58,62 @@ func TestConvertFiles(t *testing.T) {
|
||||
}
|
||||
t.Log("test successfull")
|
||||
}
|
||||
|
||||
func TestConvertHtml(t *testing.T) {
|
||||
t.Log("start test ConvertHtml")
|
||||
|
||||
// Skip in short mode (useful for CI)
|
||||
if testing.Short() {
|
||||
t.Skip("skipping ConvertHtml integration test in short mode")
|
||||
}
|
||||
|
||||
html := []byte(`
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Test PDF</title>
|
||||
<style>
|
||||
body { font-family: Arial, sans-serif; }
|
||||
h1 { color: #333; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Hello PDF</h1>
|
||||
<p>This is a test.</p>
|
||||
</body>
|
||||
</html>
|
||||
`)
|
||||
|
||||
tmpDir := t.TempDir()
|
||||
outputPath := filepath.Join(tmpDir, "test.pdf")
|
||||
|
||||
c, err := converter.NewConverter("assets/chrome-headless-shell/win64")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer c.Close()
|
||||
|
||||
err = c.ConvertHtml(html, outputPath)
|
||||
if err != nil {
|
||||
t.Fatalf("ConvertHtml failed: %v", err)
|
||||
}
|
||||
|
||||
// Assert PDF exists
|
||||
data, err := os.ReadFile(outputPath)
|
||||
if err != nil {
|
||||
t.Fatalf("PDF not created: %v", err)
|
||||
}
|
||||
|
||||
// Assert non-empty
|
||||
if len(data) == 0 {
|
||||
t.Fatal("PDF file is empty")
|
||||
}
|
||||
|
||||
// Assert valid PDF header
|
||||
if !bytes.HasPrefix(data, []byte("%PDF-")) {
|
||||
t.Fatalf("output is not a valid PDF (missing %%PDF- header)")
|
||||
}
|
||||
|
||||
t.Log("ConvertHtml test successful")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user