forked from eatvio/eatvio_app
feat(tests): updated tests coverage to 66.5%
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
import 'package:eatvio_app/features/menu/models/notification_settings_model.dart';
|
||||
import 'package:eatvio_app/features/menu/presentation/bloc/notification_settings_cubit/notification_settings_state.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
void main() {
|
||||
group('NotificationSettingsState', () {
|
||||
test('NotificationSettingsStateLoading has empty props', () {
|
||||
const state = NotificationSettingsStateLoading();
|
||||
expect(state.props, isEmpty);
|
||||
});
|
||||
|
||||
test('NotificationSettingsStateLoaded includes notificationSettings in props', () {
|
||||
const settings = NotificationSettingsModel(
|
||||
newUpdatesNotification: true,
|
||||
weightMeasurementsNotification: false,
|
||||
isEmailNotificationsEnabled: true,
|
||||
isPushNotificationsEnabled: false,
|
||||
diaryReminderNotifications: DiaryReminderNotifications(
|
||||
firstReminder: ReminderSettings(enabled: true, localTimeHours: 9, localTimeMins: 0),
|
||||
secondReminder: ReminderSettings(enabled: false, localTimeHours: 12, localTimeMins: 0),
|
||||
thirdReminder: ReminderSettings(enabled: false, localTimeHours: 18, localTimeMins: 0),
|
||||
),
|
||||
);
|
||||
const state = NotificationSettingsStateLoaded(notificationSettings: settings);
|
||||
|
||||
expect(state.props, [settings]);
|
||||
expect(state.notificationSettings, settings);
|
||||
});
|
||||
|
||||
test('NotificationSettingsStateError includes errorMessage in props', () {
|
||||
const state = NotificationSettingsStateError(errorMessage: 'Test error');
|
||||
|
||||
expect(state.props, ['Test error']);
|
||||
expect(state.errorMessage, 'Test error');
|
||||
});
|
||||
|
||||
test('NotificationSettingsStateLoaded equality works correctly', () {
|
||||
const reminderSettings = ReminderSettings(enabled: true, localTimeHours: 9, localTimeMins: 0);
|
||||
const diaryReminders = DiaryReminderNotifications(firstReminder: reminderSettings, secondReminder: reminderSettings, thirdReminder: reminderSettings);
|
||||
|
||||
const settings1 = NotificationSettingsModel(
|
||||
newUpdatesNotification: true,
|
||||
weightMeasurementsNotification: false,
|
||||
isEmailNotificationsEnabled: true,
|
||||
isPushNotificationsEnabled: false,
|
||||
diaryReminderNotifications: diaryReminders,
|
||||
);
|
||||
const settings2 = NotificationSettingsModel(
|
||||
newUpdatesNotification: true,
|
||||
weightMeasurementsNotification: false,
|
||||
isEmailNotificationsEnabled: true,
|
||||
isPushNotificationsEnabled: false,
|
||||
diaryReminderNotifications: diaryReminders,
|
||||
);
|
||||
const settings3 = NotificationSettingsModel(
|
||||
newUpdatesNotification: false,
|
||||
weightMeasurementsNotification: true,
|
||||
isEmailNotificationsEnabled: false,
|
||||
isPushNotificationsEnabled: true,
|
||||
diaryReminderNotifications: diaryReminders,
|
||||
);
|
||||
|
||||
const state1 = NotificationSettingsStateLoaded(notificationSettings: settings1);
|
||||
const state2 = NotificationSettingsStateLoaded(notificationSettings: settings2);
|
||||
const state3 = NotificationSettingsStateLoaded(notificationSettings: settings3);
|
||||
|
||||
expect(state1, equals(state2));
|
||||
expect(state1, isNot(equals(state3)));
|
||||
});
|
||||
|
||||
test('NotificationSettingsStateError equality works correctly', () {
|
||||
const state1 = NotificationSettingsStateError(errorMessage: 'Error 1');
|
||||
const state2 = NotificationSettingsStateError(errorMessage: 'Error 1');
|
||||
const state3 = NotificationSettingsStateError(errorMessage: 'Error 2');
|
||||
|
||||
expect(state1, equals(state2));
|
||||
expect(state1, isNot(equals(state3)));
|
||||
});
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user