forked from eatvio/eatvio_app
feat(tests): updated tests coverage to 66.5%
This commit is contained in:
54
test/features/menu/models/blocked_users_model_test.dart
Normal file
54
test/features/menu/models/blocked_users_model_test.dart
Normal file
@@ -0,0 +1,54 @@
|
||||
import 'package:eatvio_app/features/menu/models/blocked_users_model.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
void main() {
|
||||
group('BlockedUsersModel', () {
|
||||
test('fromJson parses profilesList correctly', () {
|
||||
final json = {
|
||||
'data': [
|
||||
{
|
||||
'id': 1,
|
||||
'name': 'User 1',
|
||||
'email': 'user1@example.com',
|
||||
'phone_confirmation_state': 'confirmed',
|
||||
'is_public_profile': true,
|
||||
'is_blocked_by_me': false,
|
||||
'is_blocked_by_author': false,
|
||||
'is_blocked_by_user': false,
|
||||
'is_entity_subscribed_by_me': false,
|
||||
'slug': 'user-1',
|
||||
'profile_photo_url': 'photo1.jpg',
|
||||
'roles': ['user'],
|
||||
'badges': [],
|
||||
'subscriptions': [],
|
||||
'subscribers': [],
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
final model = BlockedUsersModel.fromJson(json);
|
||||
|
||||
expect(model.profilesList.length, 1);
|
||||
expect(model.profilesList.first.id, 1);
|
||||
expect(model.profilesList.first.name, 'User 1');
|
||||
});
|
||||
|
||||
test('fromJson handles empty profilesList', () {
|
||||
final json = {'data': []};
|
||||
|
||||
final model = BlockedUsersModel.fromJson(json);
|
||||
|
||||
expect(model.profilesList, isEmpty);
|
||||
});
|
||||
|
||||
test('toJson serializes profilesList correctly', () {
|
||||
// Note: This test verifies the structure, actual serialization depends on ProfileModel
|
||||
const model = BlockedUsersModel(profilesList: []);
|
||||
|
||||
final json = model.toJson();
|
||||
|
||||
expect(json.containsKey('data'), isTrue);
|
||||
expect(json['data'], isA<List>());
|
||||
});
|
||||
});
|
||||
}
|
||||
112
test/features/menu/models/notification_settings_model_test.dart
Normal file
112
test/features/menu/models/notification_settings_model_test.dart
Normal file
@@ -0,0 +1,112 @@
|
||||
import 'package:eatvio_app/features/menu/models/notification_settings_model.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
void main() {
|
||||
group('ReminderSettings', () {
|
||||
test('fromJson parses all fields correctly', () {
|
||||
final json = {
|
||||
'enabled': true,
|
||||
'local_time_hours': 9,
|
||||
'local_time_mins': 30,
|
||||
};
|
||||
|
||||
final model = ReminderSettings.fromJson(json);
|
||||
|
||||
expect(model.enabled, isTrue);
|
||||
expect(model.localTimeHours, 9);
|
||||
expect(model.localTimeMins, 30);
|
||||
});
|
||||
|
||||
test('toJson serializes all fields correctly', () {
|
||||
const model = ReminderSettings(enabled: true, localTimeHours: 9, localTimeMins: 30);
|
||||
|
||||
final json = model.toJson();
|
||||
|
||||
expect(json['enabled'], isTrue);
|
||||
expect(json['local_time_hours'], 9);
|
||||
expect(json['local_time_mins'], 30);
|
||||
});
|
||||
});
|
||||
|
||||
group('DiaryReminderNotifications', () {
|
||||
test('fromJson parses all reminders correctly', () {
|
||||
final json = {
|
||||
'first_reminder': {'enabled': true, 'local_time_hours': 9, 'local_time_mins': 0},
|
||||
'second_reminder': {'enabled': false, 'local_time_hours': 13, 'local_time_mins': 0},
|
||||
'third_reminder': {'enabled': true, 'local_time_hours': 18, 'local_time_mins': 0},
|
||||
};
|
||||
|
||||
final model = DiaryReminderNotifications.fromJson(json);
|
||||
|
||||
expect(model.firstReminder.enabled, isTrue);
|
||||
expect(model.firstReminder.localTimeHours, 9);
|
||||
expect(model.secondReminder.enabled, isFalse);
|
||||
expect(model.thirdReminder.enabled, isTrue);
|
||||
});
|
||||
|
||||
test('toJson serializes all reminders correctly', () {
|
||||
const firstReminder = ReminderSettings(enabled: true, localTimeHours: 9, localTimeMins: 0);
|
||||
const secondReminder = ReminderSettings(enabled: false, localTimeHours: 13, localTimeMins: 0);
|
||||
const thirdReminder = ReminderSettings(enabled: true, localTimeHours: 18, localTimeMins: 0);
|
||||
const model = DiaryReminderNotifications(
|
||||
firstReminder: firstReminder,
|
||||
secondReminder: secondReminder,
|
||||
thirdReminder: thirdReminder,
|
||||
);
|
||||
|
||||
final json = model.toJson();
|
||||
|
||||
expect(json.containsKey('first_reminder'), isTrue);
|
||||
expect(json.containsKey('second_reminder'), isTrue);
|
||||
expect(json.containsKey('third_reminder'), isTrue);
|
||||
});
|
||||
});
|
||||
|
||||
group('NotificationSettingsModel', () {
|
||||
test('fromJson parses all fields correctly', () {
|
||||
final json = {
|
||||
'new_updates_notification': true,
|
||||
'weight_measurements_notification': false,
|
||||
'is_email_notifications_enabled': true,
|
||||
'is_push_notifications_enabled': false,
|
||||
'diary_reminder_notifications': {
|
||||
'first_reminder': {'enabled': true, 'local_time_hours': 9, 'local_time_mins': 0},
|
||||
'second_reminder': {'enabled': false, 'local_time_hours': 13, 'local_time_mins': 0},
|
||||
'third_reminder': {'enabled': true, 'local_time_hours': 18, 'local_time_mins': 0},
|
||||
},
|
||||
};
|
||||
|
||||
final model = NotificationSettingsModel.fromJson(json);
|
||||
|
||||
expect(model.newUpdatesNotification, isTrue);
|
||||
expect(model.weightMeasurementsNotification, isFalse);
|
||||
expect(model.isEmailNotificationsEnabled, isTrue);
|
||||
expect(model.isPushNotificationsEnabled, isFalse);
|
||||
expect(model.diaryReminderNotifications, isNotNull);
|
||||
});
|
||||
|
||||
test('toJson serializes all fields correctly', () {
|
||||
const diaryReminders = DiaryReminderNotifications(
|
||||
firstReminder: ReminderSettings(enabled: true, localTimeHours: 9, localTimeMins: 0),
|
||||
secondReminder: ReminderSettings(enabled: false, localTimeHours: 13, localTimeMins: 0),
|
||||
thirdReminder: ReminderSettings(enabled: true, localTimeHours: 18, localTimeMins: 0),
|
||||
);
|
||||
const model = NotificationSettingsModel(
|
||||
newUpdatesNotification: true,
|
||||
weightMeasurementsNotification: false,
|
||||
isEmailNotificationsEnabled: true,
|
||||
isPushNotificationsEnabled: false,
|
||||
diaryReminderNotifications: diaryReminders,
|
||||
);
|
||||
|
||||
final json = model.toJson();
|
||||
|
||||
expect(json['new_updates_notification'], isTrue);
|
||||
expect(json['weight_measurements_notification'], isFalse);
|
||||
expect(json['is_email_notifications_enabled'], isTrue);
|
||||
expect(json['is_push_notifications_enabled'], isFalse);
|
||||
expect(json.containsKey('diary_reminder_notifications'), isTrue);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user