53 lines
1.6 KiB
Go
53 lines
1.6 KiB
Go
|
|
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)
|
||
|
|
}
|
||
|
|
}
|