Files
matosbox/backend/internal/handlers/helpers_test.go

75 lines
1.7 KiB
Go

package handlers
import "testing"
func TestIsAllowedUpload(t *testing.T) {
cases := []struct {
name string
mime string
ext string
want bool
}{
{"image", "image/png", ".png", true},
{"pdf", "application/pdf", ".pdf", true},
{"md", "text/markdown", ".md", true},
{"md_plain", "text/plain", ".md", true},
{"other", "application/zip", ".zip", false},
}
for _, c := range cases {
t.Run(c.name, func(t *testing.T) {
if got := isAllowedUpload(c.mime, c.ext); got != c.want {
t.Fatalf("attendu %v, obtenu %v", c.want, got)
}
})
}
}
func TestMaxUploadBytes(t *testing.T) {
t.Setenv("MAX_UPLOAD_MB", "1")
if got := maxUploadBytes(); got != 1*1024*1024 {
t.Fatalf("taille inattendue: %d", got)
}
t.Setenv("MAX_UPLOAD_MB", "0")
if got := maxUploadBytes(); got != 50*1024*1024 {
t.Fatalf("taille par defaut inattendue: %d", got)
}
}
func TestParseTypeChamp(t *testing.T) {
valid := []string{"string", "int", "bool", "date"}
for _, v := range valid {
if _, ok := parseTypeChamp(v); !ok {
t.Fatalf("type_champ invalide: %s", v)
}
}
if _, ok := parseTypeChamp("x"); ok {
t.Fatal("type_champ devrait etre invalide")
}
}
func TestParseLienType(t *testing.T) {
valid := []string{"stocke", "utilise_dans"}
for _, v := range valid {
if _, ok := parseLienType(v); !ok {
t.Fatalf("type lien invalide: %s", v)
}
}
if _, ok := parseLienType("x"); ok {
t.Fatal("type lien devrait etre invalide")
}
}
func TestParseStatut(t *testing.T) {
valid := []string{"en_stock", "pret", "hors_service", "archive"}
for _, v := range valid {
if _, ok := parseStatut(v); !ok {
t.Fatalf("statut invalide: %s", v)
}
}
if _, ok := parseStatut("x"); ok {
t.Fatal("statut devrait etre invalide")
}
}