package service import ( "testing" "github.com/stretchr/testify/require" ) func TestDecodeBase64FileDataPreservesDeclaredMimeType(t *testing.T) { mimeType, payload, err := DecodeBase64FileData("data:application/pdf;base64,SGVsbG8=") require.NoError(t, err) require.Equal(t, "application/pdf", mimeType) require.Equal(t, "SGVsbG8=", payload) } func TestDecodeBase64ImageDataRejectsEmptyAndMalformedData(t *testing.T) { _, _, _, err := DecodeBase64ImageData("") require.Error(t, err) _, _, _, err = DecodeBase64ImageData("data:image/png;base64,not-base64") require.Error(t, err) } func TestDecodeBase64ImageDataParsesPNGDataURL(t *testing.T) { const pngBase64 = "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQIHWP4z8DwHwAFgAI/ScLxZQAAAABJRU5ErkJggg==" config, format, payload, err := DecodeBase64ImageData("data:image/png;base64," + pngBase64) require.NoError(t, err) require.Equal(t, 1, config.Width) require.Equal(t, 1, config.Height) require.Equal(t, "png", format) require.Equal(t, pngBase64, payload) mimeType, inferredPayload, err := DecodeBase64FileData(pngBase64) require.NoError(t, err) require.Equal(t, "image/png", mimeType) require.Equal(t, pngBase64, inferredPayload) } func TestDecodeBase64FileDataFallsBackToImageDetectionForBareData(t *testing.T) { _, _, err := DecodeBase64FileData("not-base64") require.Error(t, err) }