Fix unit test calendar_event_extension_test file to avoid build failed
This commit is contained in:
@@ -298,37 +298,46 @@ extension CalendarEventExtension on CalendarEvent {
|
||||
return false;
|
||||
}
|
||||
|
||||
String dateTimeStringForAllDayEvent(DateTime startDate, DateTime endDate) {
|
||||
final timeZoneOffset = DateTime.now().timeZoneOffset.inHours;
|
||||
final timeZoneOffsetAsString = timeZoneOffset >= 0 ? '+$timeZoneOffset' : '$timeZoneOffset';
|
||||
|
||||
final dateStart = formatDate(AppUtils.getCurrentDateLocale(), startDate);
|
||||
|
||||
String dateTimeStringForAllDayEvent({
|
||||
required DateTime startDate,
|
||||
required DateTime endDate,
|
||||
required date_format.DateLocale dateLocale,
|
||||
required String timeZone
|
||||
}) {
|
||||
final dateStart = formatDate(dateLocale, startDate);
|
||||
final endDateToDisplay = endDate.subtract(const Duration(days: 1));
|
||||
final dateEnd = formatDate(AppUtils.getCurrentDateLocale(), endDateToDisplay);
|
||||
final dateEnd = formatDate(dateLocale, endDateToDisplay);
|
||||
|
||||
if (DateUtils.isSameDay(startDate, endDateToDisplay)) {
|
||||
return '$dateStart (GMT$timeZoneOffsetAsString)';
|
||||
return '$dateStart ($timeZone)';
|
||||
} else {
|
||||
return '$dateStart - $dateEnd (GMT$timeZoneOffsetAsString)';
|
||||
return '$dateStart - $dateEnd ($timeZone)';
|
||||
}
|
||||
}
|
||||
|
||||
String get dateTimeEventAsString {
|
||||
String getDateTimeEvent({
|
||||
required date_format.DateLocale dateLocale,
|
||||
required String timeZone
|
||||
}) {
|
||||
if (isAllDayEvent) {
|
||||
return dateTimeStringForAllDayEvent(startUtcDate!.value, endUtcDate!.value);
|
||||
return dateTimeStringForAllDayEvent(
|
||||
startDate: startUtcDate!.value,
|
||||
endDate: endUtcDate!.value,
|
||||
dateLocale: dateLocale,
|
||||
timeZone: timeZone,
|
||||
);
|
||||
}
|
||||
|
||||
if (localStartDate != null && localEndDate != null) {
|
||||
final timeStart = formatDateTime(AppUtils.getCurrentDateLocale(), localStartDate!);
|
||||
final timeStart = formatDateTime(dateLocale, localStartDate!);
|
||||
final timeEnd = DateUtils.isSameDay(localStartDate, localEndDate)
|
||||
? formatTime(AppUtils.getCurrentDateLocale(), localEndDate!)
|
||||
: formatDateTime(AppUtils.getCurrentDateLocale(), localEndDate!);
|
||||
? formatTime(dateLocale, localEndDate!)
|
||||
: formatDateTime(dateLocale, localEndDate!);
|
||||
return '$timeStart - $timeEnd';
|
||||
} else if (localStartDate != null) {
|
||||
return formatDateTime(AppUtils.getCurrentDateLocale(), localStartDate!);
|
||||
return formatDateTime(dateLocale, localStartDate!);
|
||||
} else if (localEndDate != null) {
|
||||
return formatDateTime(AppUtils.getCurrentDateLocale(), localEndDate!);
|
||||
return formatDateTime(dateLocale, localEndDate!);
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
|
||||
+17
-5
@@ -13,6 +13,7 @@ import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event
|
||||
import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event/event_location_detail_widget.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event/event_time_detail_widget.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event/event_title_widget.dart';
|
||||
import 'package:tmail_ui_user/main/utils/app_utils.dart';
|
||||
|
||||
class CalendarEventDetailWidget extends StatelessWidget {
|
||||
|
||||
@@ -77,11 +78,7 @@ class CalendarEventDetailWidget extends StatelessWidget {
|
||||
onMailtoDelegateAction: onMailtoDelegateAction,
|
||||
)
|
||||
),
|
||||
if (calendarEvent.dateTimeEventAsString.isNotEmpty)
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(top: CalendarEventDetailWidgetStyles.fieldTopPadding),
|
||||
child: EventTimeWidgetWidget(timeEvent: calendarEvent.dateTimeEventAsString),
|
||||
),
|
||||
_buildEventTimeWidget(),
|
||||
if (calendarEvent.videoConferences.isNotEmpty)
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(top: CalendarEventDetailWidgetStyles.fieldTopPadding),
|
||||
@@ -110,4 +107,19 @@ class CalendarEventDetailWidget extends StatelessWidget {
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildEventTimeWidget() {
|
||||
final dateTimeEvent = calendarEvent.getDateTimeEvent(
|
||||
dateLocale: AppUtils.getCurrentDateLocale(),
|
||||
timeZone: AppUtils.getTimeZone()
|
||||
);
|
||||
if (dateTimeEvent.isNotEmpty) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.only(top: CalendarEventDetailWidgetStyles.fieldTopPadding),
|
||||
child: EventTimeWidgetWidget(timeEvent: dateTimeEvent),
|
||||
);
|
||||
} else {
|
||||
return const SizedBox.shrink();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+19
-11
@@ -7,14 +7,15 @@ import 'package:jmap_dart_client/jmap/mail/calendar/calendar_event.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/event_action.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/extensions/calendar_event_extension.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/styles/calendar_event_information_widget_styles.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event/calendar_date_icon_widget.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event/calendar_event_action_button_widget.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event/event_attendee_information_widget.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event/calendar_date_icon_widget.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event/event_location_detail_widget.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event/event_location_information_widget.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event/event_time_information_widget.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event/event_title_widget.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
import 'package:tmail_ui_user/main/utils/app_utils.dart';
|
||||
|
||||
class CalendarEventInformationWidget extends StatelessWidget {
|
||||
|
||||
@@ -94,11 +95,7 @@ class CalendarEventInformationWidget extends StatelessWidget {
|
||||
const SizedBox(height: CalendarEventInformationWidgetStyles.space),
|
||||
if (calendarEvent.title?.isNotEmpty == true)
|
||||
EventTitleWidget(title: calendarEvent.title!),
|
||||
if (calendarEvent.dateTimeEventAsString.isNotEmpty)
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(top: CalendarEventInformationWidgetStyles.fieldTopPadding),
|
||||
child: EventTimeInformationWidget(timeEvent: calendarEvent.dateTimeEventAsString),
|
||||
),
|
||||
_buildEventTimeInformationWidget(),
|
||||
if (calendarEvent.location?.isNotEmpty == true)
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(top: CalendarEventInformationWidgetStyles.fieldTopPadding),
|
||||
@@ -168,11 +165,7 @@ class CalendarEventInformationWidget extends StatelessWidget {
|
||||
const SizedBox(height: CalendarEventInformationWidgetStyles.space),
|
||||
if (calendarEvent.title?.isNotEmpty == true)
|
||||
EventTitleWidget(title: calendarEvent.title!),
|
||||
if (calendarEvent.dateTimeEventAsString.isNotEmpty)
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(top: CalendarEventInformationWidgetStyles.fieldTopPadding),
|
||||
child: EventTimeInformationWidget(timeEvent: calendarEvent.dateTimeEventAsString),
|
||||
),
|
||||
_buildEventTimeInformationWidget(),
|
||||
if (calendarEvent.location?.isNotEmpty == true)
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(top: CalendarEventInformationWidgetStyles.fieldTopPadding),
|
||||
@@ -202,4 +195,19 @@ class CalendarEventInformationWidget extends StatelessWidget {
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildEventTimeInformationWidget() {
|
||||
final dateTimeEvent = calendarEvent.getDateTimeEvent(
|
||||
dateLocale: AppUtils.getCurrentDateLocale(),
|
||||
timeZone: AppUtils.getTimeZone()
|
||||
);
|
||||
if (dateTimeEvent.isNotEmpty) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.only(top: CalendarEventInformationWidgetStyles.fieldTopPadding),
|
||||
child: EventTimeInformationWidget(timeEvent: dateTimeEvent),
|
||||
);
|
||||
} else {
|
||||
return const SizedBox.shrink();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -68,4 +68,10 @@ class AppUtils {
|
||||
return const date_format.EnglishDateLocale();
|
||||
}
|
||||
}
|
||||
|
||||
static String getTimeZone() {
|
||||
final timeZoneOffset = DateTime.now().timeZoneOffset.inHours;
|
||||
final timeZoneOffsetAsString = timeZoneOffset >= 0 ? '+$timeZoneOffset' : '$timeZoneOffset';
|
||||
return 'GMT$timeZoneOffsetAsString';
|
||||
}
|
||||
}
|
||||
+9
-2
@@ -1,3 +1,4 @@
|
||||
import 'package:date_format/date_format.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/utc_date.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/calendar/calendar_event.dart';
|
||||
@@ -18,7 +19,10 @@ void main() {
|
||||
endUtcDate: UTCDate(endDate),
|
||||
);
|
||||
|
||||
final formattedDateString = calendarEvent.dateTimeEventAsString;
|
||||
final formattedDateString = calendarEvent.getDateTimeEvent(
|
||||
timeZone: 'GMT+0',
|
||||
dateLocale: const EnglishDateLocale()
|
||||
);
|
||||
|
||||
expect(formattedDateString, expectedFormattedDateString);
|
||||
});
|
||||
@@ -36,7 +40,10 @@ void main() {
|
||||
endUtcDate: UTCDate(endDate),
|
||||
);
|
||||
|
||||
final formattedDateString = calendarEvent.dateTimeEventAsString;
|
||||
final formattedDateString = calendarEvent.getDateTimeEvent(
|
||||
timeZone: 'GMT+0',
|
||||
dateLocale: const EnglishDateLocale()
|
||||
);
|
||||
|
||||
expect(formattedDateString, expectedFormattedDateString);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user