This commit is contained in:
shenlong-tanwen
2026-05-01 23:03:23 +07:00
parent 3a10b438ce
commit 6fdb841732
3 changed files with 94 additions and 33 deletions
@@ -1,14 +1,23 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:immich_mobile/domain/models/metadata_key.dart';
import 'package:immich_mobile/infrastructure/repositories/metadata.repository.dart';
void main() {
group('codec', () {
test('every MetadataKey encodes and decodes values losslessly', () {
group('MetadataKey', () {
test('every key round-trips its default value losslessly', () {
for (final key in MetadataKey.values) {
final encoded = MetadataRepository.encode(key.defaultValue);
final decoded = MetadataRepository.decode(key, encoded);
expect(decoded, key.defaultValue, reason: 'codec round-trip failed for ${key.name}');
final encoded = key.encode(key.defaultValue);
final decoded = key.decode(encoded);
expect(decoded, key.defaultValue, reason: 'round-trip failed for ${key.name}');
}
});
test('decode falls back to the default value when the raw input is unparseable', () {
for (final key in MetadataKey.values) {
expect(
key.decode('not a valid encoding for any key'),
key.defaultValue,
reason: 'fallback failed for ${key.name}',
);
}
});
});