Files
eatvio_app/test/features/feed/models/view_model_test.dart
2026-01-14 18:47:11 +03:00

57 lines
1.3 KiB
Dart

import 'package:eatvio_app/features/feed/models/view_model.dart';
import 'package:flutter_test/flutter_test.dart';
void main() {
group('ViewModel', () {
test('fromJson parses all fields correctly', () {
final json = {
'type': 'diet',
'ids': [1, 2, 3],
'slugs': ['diet-1', 'diet-2'],
};
final model = ViewModel.fromJson(json);
expect(model.type, 'diet');
expect(model.ids, [1, 2, 3]);
expect(model.slugs, ['diet-1', 'diet-2']);
});
test('fromJson handles null optional fields', () {
final json = {
'type': 'plan',
};
final model = ViewModel.fromJson(json);
expect(model.type, 'plan');
expect(model.ids, isNull);
expect(model.slugs, isNull);
});
test('toJson serializes all fields correctly', () {
final model = ViewModel(
type: 'recipe',
ids: [1, 2],
slugs: ['recipe-1'],
);
final json = model.toJson();
expect(json['type'], 'recipe');
expect(json['ids'], [1, 2]);
expect(json['slugs'], ['recipe-1']);
});
test('toJson omits null fields', () {
final model = ViewModel(type: 'diet');
final json = model.toJson();
expect(json['type'], 'diet');
expect(json.containsKey('ids'), isTrue);
expect(json.containsKey('slugs'), isTrue);
});
});
}