45 lines
1.2 KiB
Go
45 lines
1.2 KiB
Go
package images
|
|
|
|
import "testing"
|
|
|
|
func TestNormalizeOptionsDefaults(t *testing.T) {
|
|
opts, err := NormalizeOptions(ProcessOptions{})
|
|
if err != nil {
|
|
t.Fatalf("unexpected error: %v", err)
|
|
}
|
|
if opts.Quality != DefaultQuality {
|
|
t.Fatalf("expected default quality %d, got %d", DefaultQuality, opts.Quality)
|
|
}
|
|
if opts.Format != DefaultFormat {
|
|
t.Fatalf("expected default format %q, got %q", DefaultFormat, opts.Format)
|
|
}
|
|
if opts.Width != 0 || opts.Height != 0 {
|
|
t.Fatalf("expected width/height to stay 0 when not provided")
|
|
}
|
|
}
|
|
|
|
func TestNormalizeOptionsJPGAlias(t *testing.T) {
|
|
opts, err := NormalizeOptions(ProcessOptions{Format: "jpg", Quality: 10})
|
|
if err != nil {
|
|
t.Fatalf("unexpected error: %v", err)
|
|
}
|
|
if opts.Format != "jpeg" {
|
|
t.Fatalf("expected jpeg alias, got %q", opts.Format)
|
|
}
|
|
}
|
|
|
|
func TestNormalizeOptionsRejectsInvalidValues(t *testing.T) {
|
|
cases := []ProcessOptions{
|
|
{Width: -1, Quality: 90, Format: "avif"},
|
|
{Height: -1, Quality: 90, Format: "avif"},
|
|
{Quality: 101, Format: "avif"},
|
|
{Quality: 90, Format: "gif"},
|
|
}
|
|
|
|
for _, tc := range cases {
|
|
if _, err := NormalizeOptions(tc); err == nil {
|
|
t.Fatalf("expected error for case: %+v", tc)
|
|
}
|
|
}
|
|
}
|