package storage import ( "regexp" "testing" ) // 生产口径 key 结构:`YYYY/MM/`,无前缀、无 day 层。 // 与 route/question/page.go:uploadImage 的落盘 key 保持一致。 var prodKeyRe = regexp.MustCompile(`^\d{4}/\d{2}/\d{16,19}\.jpg$`) func TestUploadKeyFormat(t *testing.T) { key := uploadKey(".jpg") if !prodKeyRe.MatchString(key) { t.Fatalf("uploadKey(.jpg) = %q, 不符合生产口径 YYYY/MM/", key) } } func TestExtFromContentType(t *testing.T) { cases := map[string]string{ "image/jpeg": ".jpg", "image/png": ".png", "image/gif": ".gif", "image/webp": ".webp", "image/bmp": "", } for ct, want := range cases { if got := extFromContentType(ct); got != want { t.Errorf("extFromContentType(%q) = %q, want %q", ct, got, want) } } } func TestOriginalExt(t *testing.T) { cases := map[string]string{ "photo.JPG": ".jpg", "a.b.png": ".png", "noext": "", "tricky.PnG": ".png", } for name, want := range cases { if got := originalExt(name); got != want { t.Errorf("originalExt(%q) = %q, want %q", name, got, want) } } }