minioUploadLogic_test.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package minio
  2. import (
  3. "testing"
  4. "time"
  5. "github.com/stretchr/testify/assert"
  6. )
  7. // TC-1248: parseDir 模板替换 {yyyy}/{mm}/{dd}
  8. func TestParseDir(t *testing.T) {
  9. now := time.Now()
  10. expectedYear := now.Format("2006")
  11. expectedMonth := now.Format("01")
  12. expectedDay := now.Format("02")
  13. cases := []struct {
  14. name string
  15. template string
  16. expected string
  17. }{
  18. {"full_date", "avatar/{yyyy}/{mm}/{dd}", "avatar/" + expectedYear + "/" + expectedMonth + "/" + expectedDay},
  19. {"year_only", "files/{yyyy}", "files/" + expectedYear},
  20. {"no_template", "static/path", "static/path"},
  21. {"empty", "", ""},
  22. {"repeated", "{yyyy}-{yyyy}", expectedYear + "-" + expectedYear},
  23. }
  24. for _, tc := range cases {
  25. t.Run(tc.name, func(t *testing.T) {
  26. result := parseDir(tc.template)
  27. assert.Equal(t, tc.expected, result)
  28. })
  29. }
  30. }
  31. // TC-1242: fileType 为空
  32. func TestMinioUpload_EmptyFileType(t *testing.T) {
  33. // 直接测试 logic 的 fileType 校验逻辑
  34. // 由于 MinioClient 是具体类型,这里用 handler 级别测试覆盖
  35. // 此处仅验证 parseDir 行为
  36. t.Skip("MinIO logic 依赖真实 MinioClient,完整逻辑由 handler_test 覆盖")
  37. }