77 lines
2.5 KiB
Go
77 lines
2.5 KiB
Go
package store
|
|
|
|
import "testing"
|
|
|
|
func TestNormalizeMeetingNoteFileMetadataUsesUploadMetadata(t *testing.T) {
|
|
gotName, gotMime, gotSize, gotETag := normalizeMeetingNoteFileMetadata(MeetingNoteFileInput{
|
|
FileID: "lxzvtUzicEo",
|
|
}, fileUploadMetadata{
|
|
MIMEType: "application/pdf",
|
|
FileSize: 12345,
|
|
FileETag: "etag-1",
|
|
Location: "uploads/wontuse",
|
|
}, "lxzvtUzicEo")
|
|
if gotName != "lxzvtUzicEo.pdf" {
|
|
t.Fatalf("name=%q, want lxzvtUzicEo.pdf", gotName)
|
|
}
|
|
if gotMime != "application/pdf" || gotSize != 12345 || gotETag != "etag-1" {
|
|
t.Fatalf("metadata mime=%q size=%d etag=%q", gotMime, gotSize, gotETag)
|
|
}
|
|
}
|
|
|
|
func TestNormalizeMeetingNoteFileMetadataKeepsRequestMetadata(t *testing.T) {
|
|
size := int64(88)
|
|
gotName, gotMime, gotSize, gotETag := normalizeMeetingNoteFileMetadata(MeetingNoteFileInput{
|
|
FileID: "file_1",
|
|
FileName: "../会议纪要.docx",
|
|
MIMEType: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
|
FileSize: &size,
|
|
FileETag: "request-etag",
|
|
}, fileUploadMetadata{
|
|
MIMEType: "application/pdf",
|
|
FileSize: 12345,
|
|
FileETag: "upload-etag",
|
|
Location: "uploads/file_1.pdf",
|
|
}, "file_1")
|
|
if gotName != "会议纪要.docx" {
|
|
t.Fatalf("name=%q, want original file name", gotName)
|
|
}
|
|
if gotMime != "application/vnd.openxmlformats-officedocument.wordprocessingml.document" || gotSize != 88 || gotETag != "request-etag" {
|
|
t.Fatalf("metadata mime=%q size=%d etag=%q", gotMime, gotSize, gotETag)
|
|
}
|
|
}
|
|
|
|
func TestParseUploadFileIDAcceptsExtension(t *testing.T) {
|
|
decodedID, storageName := parseUploadFileID("lxzvtUzicEo.pdf")
|
|
if decodedID <= 0 {
|
|
t.Fatalf("decodedID=%d, want positive", decodedID)
|
|
}
|
|
if storageName == "" {
|
|
t.Fatal("storageName is empty")
|
|
}
|
|
}
|
|
|
|
func TestParseUploadFileIDAcceptsOSSURL(t *testing.T) {
|
|
decodedID, storageName := parseUploadFileID("https://oss.example.com/files/lxzvtUzicEo.pdf?Expires=1")
|
|
if decodedID <= 0 {
|
|
t.Fatalf("decodedID=%d, want positive", decodedID)
|
|
}
|
|
if storageName == "" {
|
|
t.Fatal("storageName is empty")
|
|
}
|
|
}
|
|
|
|
func TestParseUploadFileIDAcceptsObjectKey(t *testing.T) {
|
|
decodedID, storageName := parseUploadFileID("tenants/1/2026/09/s4oo7nkm4jyeu")
|
|
if decodedID != 0 {
|
|
t.Fatalf("decodedID=%d, want 0 for object key", decodedID)
|
|
}
|
|
if storageName != "s4oo7nkm4jyeu" {
|
|
t.Fatalf("storageName=%q, want s4oo7nkm4jyeu", storageName)
|
|
}
|
|
candidates := uploadLocationCandidates("tenants/1/2026/09/s4oo7nkm4jyeu", storageName)
|
|
if len(candidates) < 2 || candidates[0] != "s4oo7nkm4jyeu" || candidates[1] != "tenants/1/2026/09/s4oo7nkm4jyeu" {
|
|
t.Fatalf("candidates=%#v", candidates)
|
|
}
|
|
}
|