Files
rely/test/integrations/backend/sync_envelope_validator_test.dart
2026-02-14 20:10:16 +01:00

38 lines
1.2 KiB
Dart

import 'package:flutter_test/flutter_test.dart';
import 'package:relationship_saver/core/network/backend_exception.dart';
import 'package:relationship_saver/integrations/backend/models/backend_models.dart';
import 'package:relationship_saver/integrations/backend/sync_envelope_validator.dart';
void main() {
test('rejects delete envelopes with payload', () {
final ChangeEnvelope invalid = ChangeEnvelope(
schemaVersion: 1,
entityType: 'person',
entityId: 'p1',
op: ChangeOperation.delete,
modifiedAt: DateTime.utc(2026, 1, 1),
clientMutationId: 'cm-delete',
payload: const <String, dynamic>{'unexpected': true},
);
expect(
() => SyncEnvelopeValidator.validate(invalid),
throwsA(isA<ValidationException>()),
);
});
test('accepts valid upsert envelope', () {
final ChangeEnvelope valid = ChangeEnvelope(
schemaVersion: 1,
entityType: 'person',
entityId: 'p2',
op: ChangeOperation.upsert,
modifiedAt: DateTime.utc(2026, 1, 1),
clientMutationId: 'cm-upsert',
payload: const <String, dynamic>{'name': 'Jamie'},
);
expect(() => SyncEnvelopeValidator.validate(valid), returnsNormally);
});
}