package config import ( "testing" "github.com/stretchr/testify/assert" ) func TestUploadLimit_DefaultBytesAndMB(t *testing.T) { t.Setenv(AudioLimit.EnvVar, "") t.Setenv(ImageLimit.EnvVar, "") t.Setenv(VideoLimit.EnvVar, "") assert.Equal(t, 100, AudioLimit.MB(), "audio default must match historical 100MB value") assert.Equal(t, int64(100*1024*1024), AudioLimit.Bytes()) assert.Equal(t, "100MB", AudioLimit.HumanReadable()) assert.Equal(t, 10, ImageLimit.MB()) assert.Equal(t, int64(10*1024*1024), ImageLimit.Bytes()) assert.Equal(t, "10MB", ImageLimit.HumanReadable()) assert.Equal(t, 500, VideoLimit.MB()) assert.Equal(t, int64(500*1024*1024), VideoLimit.Bytes()) } func TestUploadLimit_EnvOverride(t *testing.T) { t.Setenv(AudioLimit.EnvVar, "250") assert.Equal(t, 250, AudioLimit.MB()) assert.Equal(t, int64(250*1024*1024), AudioLimit.Bytes()) assert.Equal(t, "250MB", AudioLimit.HumanReadable()) } func TestUploadLimit_InvalidEnvFallsBackToDefault(t *testing.T) { t.Setenv(AudioLimit.EnvVar, "not-a-number") assert.Equal(t, DefaultAudioMaxMB, AudioLimit.MB(), "non-numeric env must fall back to default") t.Setenv(AudioLimit.EnvVar, "-50") assert.Equal(t, DefaultAudioMaxMB, AudioLimit.MB(), "negative env must fall back to default") t.Setenv(AudioLimit.EnvVar, "0") assert.Equal(t, DefaultAudioMaxMB, AudioLimit.MB(), "zero env must fall back to default") } func TestUploadLimit_AllowedMIMEsAreNonEmpty(t *testing.T) { for _, l := range []UploadLimitMB{AudioLimit, ImageLimit, VideoLimit} { assert.NotEmpty(t, l.AllowedMIMEs, "category %s must declare its MIME list", l.Category) } }