Files
xk-hy-transit-go/internal/fileauth/parts_test.go

53 lines
1.4 KiB
Go
Raw Normal View History

2026-05-28 16:39:51 +08:00
package fileauth
import (
"strings"
"testing"
)
func TestBuildUploadTokenParts_matchesCreateUploadTokenAt(t *testing.T) {
const (
accessKey = "accessKey"
secret = "secret"
bucket = "other-doc"
deadline = int64(1735689600)
)
want, err := CreateUploadTokenAt(accessKey, secret, bucket, deadline)
if err != nil {
t.Fatal(err)
}
parts, err := BuildUploadTokenParts(accessKey, secret, bucket, deadline)
if err != nil {
t.Fatal(err)
}
if parts.UploadToken != want {
t.Fatalf("token mismatch\ngot: %s\nwant: %s", parts.UploadToken, want)
}
if parts.AccessKey != accessKey {
t.Fatalf("accessKey=%q", parts.AccessKey)
}
if parts.PolicyJSON != `{"scope":"other-doc","deadline":1735689600}` {
t.Fatalf("policy=%q", parts.PolicyJSON)
}
if strings.Contains(parts.PolicyJSON, "returnBody") {
t.Fatalf("upload profile must not include returnBody: %q", parts.PolicyJSON)
}
2026-05-28 17:03:08 +08:00
if parts.Algorithm != algorithmJavaUpload {
2026-05-28 16:39:51 +08:00
t.Fatalf("algorithm=%q", parts.Algorithm)
}
2026-05-28 17:03:08 +08:00
if parts.SignInput != parts.PolicyJSON {
t.Fatal("signInput must be policy JSON")
2026-05-28 16:39:51 +08:00
}
}
2026-05-28 17:03:08 +08:00
func TestValidateUploadTokenFormat_production(t *testing.T) {
2026-05-28 16:39:51 +08:00
parts, err := BuildUploadTokenParts("accessKey", "secret", "other-doc", 1735689600)
if err != nil {
t.Fatal(err)
}
ok, checks := ValidateUploadTokenFormat(parts.UploadToken, "accessKey")
if !ok {
t.Fatalf("validate failed: %+v", checks)
}
}