mirror of
https://github.com/gotenberg/gotenberg.git
synced 2026-08-08 16:42:15 +01:00
95 lines
2.2 KiB
Go
95 lines
2.2 KiB
Go
package api
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
func TestApiMock(t *testing.T) {
|
|
mock := &ApiMock{
|
|
PdfMock: func(ctx context.Context, logger *zap.Logger, input, outputPath string, options Options) error {
|
|
return nil
|
|
},
|
|
ExtensionsMock: func() []string {
|
|
return nil
|
|
},
|
|
}
|
|
|
|
err := mock.Pdf(context.Background(), zap.NewNop(), "", "", Options{})
|
|
if err != nil {
|
|
t.Errorf("expected no error from ApiMock.Pdf, but got: %v", err)
|
|
}
|
|
|
|
ext := mock.Extensions()
|
|
if ext != nil {
|
|
t.Errorf("expected nil result from ApiMock.Extensions, but got: %v", ext)
|
|
}
|
|
}
|
|
|
|
func TestProviderMock(t *testing.T) {
|
|
mock := &ProviderMock{
|
|
LibreOfficeMock: func() (Uno, error) {
|
|
return nil, nil
|
|
},
|
|
}
|
|
|
|
_, err := mock.LibreOffice()
|
|
if err != nil {
|
|
t.Errorf("expected no error from ProviderMock.LibreOffice, but got: %v", err)
|
|
}
|
|
}
|
|
|
|
func TestLibreOfficeMock(t *testing.T) {
|
|
for _, tc := range []struct {
|
|
scenario string
|
|
mock *libreOfficeMock
|
|
expectError bool
|
|
}{
|
|
{
|
|
scenario: "success",
|
|
mock: &libreOfficeMock{
|
|
pdfMock: func(ctx context.Context, logger *zap.Logger, input, outputPath string, options Options) error {
|
|
return nil
|
|
},
|
|
},
|
|
expectError: false,
|
|
},
|
|
{
|
|
scenario: "ErrCoreDumped (first call)",
|
|
mock: &libreOfficeMock{
|
|
pdfMock: func(ctx context.Context, logger *zap.Logger, input, outputPath string, options Options) error {
|
|
return ErrCoreDumped
|
|
},
|
|
},
|
|
expectError: true,
|
|
},
|
|
{
|
|
scenario: "ErrCoreDumped (second call)",
|
|
mock: func() *libreOfficeMock {
|
|
m := &libreOfficeMock{
|
|
pdfMock: func(ctx context.Context, logger *zap.Logger, input, outputPath string, options Options) error {
|
|
return ErrCoreDumped
|
|
},
|
|
}
|
|
m.pdf(context.Background(), zap.NewNop(), "", "", Options{})
|
|
return m
|
|
}(),
|
|
expectError: false,
|
|
},
|
|
} {
|
|
t.Run(tc.scenario, func(t *testing.T) {
|
|
err := tc.mock.pdf(context.Background(), zap.NewNop(), "", "", Options{})
|
|
|
|
if !tc.expectError && err != nil {
|
|
t.Fatalf("expected no error from libreOfficeMock.pdf but got: %v", err)
|
|
}
|
|
|
|
if tc.expectError && err == nil {
|
|
t.Fatal("expected error from libreOfficeMock.pdf but got none")
|
|
}
|
|
})
|
|
}
|
|
}
|