75 lines
1.7 KiB
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")
|
|
}
|
|
}
|