forked from eatvio/eatvio_app
feat(tests): updated tests coverage to 66.5%
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
import 'package:eatvio_app/features/settings/models/profile_settings_model.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
void main() {
|
||||
group('ProfileSettingsModel', () {
|
||||
test('fromJson parses all fields correctly', () {
|
||||
final json = {
|
||||
'new_updates_notifications': true,
|
||||
'diary_reminder_notifications': {'enabled': true},
|
||||
'is_mood_fillable': true,
|
||||
'is_bedtime_fillable': false,
|
||||
'is_public_profile': true,
|
||||
};
|
||||
|
||||
final model = ProfileSettingsModel.fromJson(json);
|
||||
|
||||
expect(model.newUpdatesNotifications, isTrue);
|
||||
expect(model.diaryReminderNotifications, isNotNull);
|
||||
expect(model.isMoodFillable, isTrue);
|
||||
expect(model.isBedtimeFillable, isFalse);
|
||||
expect(model.isPublicProfile, isTrue);
|
||||
});
|
||||
|
||||
test('fromJson handles different notification types', () {
|
||||
final json = {
|
||||
'new_updates_notifications': false,
|
||||
'diary_reminder_notifications': null,
|
||||
'is_mood_fillable': false,
|
||||
'is_bedtime_fillable': true,
|
||||
'is_public_profile': false,
|
||||
};
|
||||
|
||||
final model = ProfileSettingsModel.fromJson(json);
|
||||
|
||||
expect(model.newUpdatesNotifications, isFalse);
|
||||
expect(model.isMoodFillable, isFalse);
|
||||
expect(model.isBedtimeFillable, isTrue);
|
||||
expect(model.isPublicProfile, isFalse);
|
||||
});
|
||||
|
||||
test('toJson serializes all fields correctly', () {
|
||||
const model = ProfileSettingsModel(
|
||||
newUpdatesNotifications: true,
|
||||
diaryReminderNotifications: {'enabled': true},
|
||||
isMoodFillable: true,
|
||||
isBedtimeFillable: false,
|
||||
isPublicProfile: true,
|
||||
);
|
||||
|
||||
final json = model.toJson();
|
||||
|
||||
expect(json['new_updates_notifications'], isTrue);
|
||||
expect(json.containsKey('diary_reminder_notifications'), isTrue);
|
||||
expect(json['is_mood_fillable'], isTrue);
|
||||
expect(json['is_bedtime_fillable'], isFalse);
|
||||
expect(json['is_public_profile'], isTrue);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user