54 lines
1.6 KiB
Go
54 lines
1.6 KiB
Go
package queue
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"wucher/internal/shared/pkg/uuidv7"
|
|
)
|
|
|
|
func TestFileProcessingJSONSerializerRoundTrip(t *testing.T) {
|
|
serializer := NewFileProcessingJSONSerializer("v1", QueueTypeStandard, "")
|
|
fileUUID, err := uuidv7.String(uuidv7.MustNew())
|
|
if err != nil {
|
|
t.Fatalf("uuid string: %v", err)
|
|
}
|
|
|
|
ctx := WithCorrelationID(context.Background(), "upload-req-1")
|
|
message, err := serializer.Serialize(ctx, FileProcessingJob{
|
|
FileUUID: fileUUID,
|
|
Bucket: "wucher-file-dev",
|
|
ObjectKey: "files/2026/04/03/a.pdf",
|
|
MimeType: "application/pdf",
|
|
SizeBytes: 1234,
|
|
})
|
|
if err != nil {
|
|
t.Fatalf("serialize: %v", err)
|
|
}
|
|
|
|
envelope, err := serializer.Deserialize(message.Body, message.Attributes)
|
|
if err != nil {
|
|
t.Fatalf("deserialize: %v", err)
|
|
}
|
|
if envelope.MessageID == "" {
|
|
t.Fatalf("expected message id")
|
|
}
|
|
if envelope.CorrelationID != "upload-req-1" {
|
|
t.Fatalf("unexpected correlation id: %q", envelope.CorrelationID)
|
|
}
|
|
if envelope.Payload.FileUUID != fileUUID {
|
|
t.Fatalf("unexpected file uuid: %q", envelope.Payload.FileUUID)
|
|
}
|
|
if envelope.Payload.ObjectKey != "files/2026/04/03/a.pdf" {
|
|
t.Fatalf("unexpected object key: %q", envelope.Payload.ObjectKey)
|
|
}
|
|
}
|
|
|
|
func TestFileProcessingJSONSerializerRejectsInvalidPayload(t *testing.T) {
|
|
serializer := NewFileProcessingJSONSerializer("v1", QueueTypeStandard, "")
|
|
_, err := serializer.Deserialize([]byte(`{"version":"v1","message_id":"m1","kind":"file_manager.processing","occurred_at":"2026-04-03T00:00:00Z","payload":{"bucket":"b","object_key":"k","size_bytes":1}}`), nil)
|
|
if err == nil {
|
|
t.Fatalf("expected invalid payload error")
|
|
}
|
|
}
|