X-Git-Url: https://git.giacomolli.uk/onehouse/blobdiff_plain/b2dda1203fcd01639423fa01454e950c3edf39d2..b28ae53ae04c41116acb2beae9d5a2128a187c83:/protocol/envelope_test.go?ds=inline diff --git a/protocol/envelope_test.go b/protocol/envelope_test.go index dfb0600..4b55451 100644 --- a/protocol/envelope_test.go +++ b/protocol/envelope_test.go @@ -10,7 +10,13 @@ import ( func TestEnvelopeRoundTripPreservesMetadata(t *testing.T) { now := time.Date(2026, 1, 1, 0, 0, 0, 0, time.UTC) - metadata := Metadata{MessageID: messageID, SentAt: &now, ExpiresAt: &now, CorrelationID: commandID, CausationID: deviceID} + metadata := Metadata{ + MessageID: messageID, + SentAt: &now, + ExpiresAt: &now, + CorrelationID: commandID, + CausationID: deviceID, + } data, err := EncodeEnvelope(metadata, map[string]bool{"value": true}) require.NoError(t, err) @@ -31,18 +37,52 @@ func TestEnvelopeRejectsInvalidWireData(t *testing.T) { name string data string }{ - {name: "rejects unsupported schema", data: strings.Replace(valid, `"schema":1`, `"schema":2`, 1)}, - {name: "rejects unknown fields", data: strings.Replace(valid, `"payload":{}`, `"payload":{},"extra":true`, 1)}, - {name: "rejects missing payload", data: `{"schema":1,"message_id":"` + messageID + `"}`}, - {name: "rejects null payload", data: strings.Replace(valid, `"payload":{}`, `"payload":null`, 1)}, - {name: "rejects non-object payload", data: strings.Replace(valid, `"payload":{}`, `"payload":[]`, 1)}, - {name: "rejects missing identity", data: `{"schema":1,"payload":{}}`}, - {name: "rejects invalid correlation", data: strings.Replace(valid, `"payload":{}`, `"payload":{},"correlation_id":"bad"`, 1)}, - {name: "rejects invalid causation", data: strings.Replace(valid, `"payload":{}`, `"payload":{},"causation_id":"bad"`, 1)}, - {name: "rejects non-UTC time", data: strings.Replace(valid, `"payload":{}`, `"payload":{},"sent_at":"2026-01-01T01:00:00+01:00"`, 1)}, - {name: "rejects invalid expiry", data: strings.Replace(valid, `"payload":{}`, `"payload":{},"expires_at":"bad"`, 1)}, - {name: "rejects trailing JSON", data: valid + `{}`}, + { + name: "rejects unsupported schema", + data: strings.Replace(valid, `"schema":1`, `"schema":2`, 1), + }, + { + name: "rejects unknown fields", + data: strings.Replace(valid, `"payload":{}`, `"payload":{},"extra":true`, 1), + }, + { + name: "rejects missing payload", + data: `{"schema":1,"message_id":"` + messageID + `"}`, + }, + { + name: "rejects null payload", + data: strings.Replace(valid, `"payload":{}`, `"payload":null`, 1), + }, + { + name: "rejects non-object payload", + data: strings.Replace(valid, `"payload":{}`, `"payload":[]`, 1), + }, + { + name: "rejects missing identity", + data: `{"schema":1,"payload":{}}`, + }, + { + name: "rejects invalid correlation", + data: strings.Replace(valid, `"payload":{}`, `"payload":{},"correlation_id":"bad"`, 1), + }, + { + name: "rejects invalid causation", + data: strings.Replace(valid, `"payload":{}`, `"payload":{},"causation_id":"bad"`, 1), + }, + { + name: "rejects non-UTC time", + data: strings.Replace(valid, `"payload":{}`, `"payload":{},"sent_at":"2026-01-01T01:00:00+01:00"`, 1), + }, + { + name: "rejects invalid expiry", + data: strings.Replace(valid, `"payload":{}`, `"payload":{},"expires_at":"bad"`, 1), + }, + { + name: "rejects trailing JSON", + data: valid + `{}`, + }, } + for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { _, err := ParseEnvelope([]byte(tc.data))