forked from eatvio/eatvio_app
feat(diary_test): Issue-755
This commit is contained in:
687
test/features/diary/services/diary_service_test.dart
Normal file
687
test/features/diary/services/diary_service_test.dart
Normal file
@@ -0,0 +1,687 @@
|
||||
import 'dart:io';
|
||||
import 'package:eatvio_app/features/diary/models/consultant_comment_model.dart';
|
||||
import 'package:eatvio_app/features/diary/models/consultant_review_model.dart';
|
||||
import 'package:eatvio_app/features/diary/models/create_day_model.dart';
|
||||
import 'package:eatvio_app/features/diary/models/diary_day_model.dart';
|
||||
import 'package:eatvio_app/features/diary/models/finish_diary_day_model.dart';
|
||||
import 'package:eatvio_app/features/diary/models/nutrition_model.dart';
|
||||
import 'package:eatvio_app/features/diary/services/diary_service.dart';
|
||||
import 'package:eatvio_app/features/glossary/models/glossary_model.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:mockito/annotations.dart';
|
||||
import 'package:mockito/mockito.dart';
|
||||
import 'diary_service_test.mocks.dart';
|
||||
|
||||
@GenerateNiceMocks([MockSpec<DiaryService>()])
|
||||
void main() {
|
||||
group('DiaryService', () {
|
||||
late MockDiaryService mockDiaryService;
|
||||
|
||||
setUp(() {
|
||||
mockDiaryService = MockDiaryService();
|
||||
});
|
||||
|
||||
test('getDiaryIndexByDate - возвращает список дневников по дате', () async {
|
||||
const date = '2024-01-15';
|
||||
final expectedDiaryList = [
|
||||
const DiaryDayModel(
|
||||
id: 1,
|
||||
date: date,
|
||||
closed: 0,
|
||||
comment: '',
|
||||
typeOfDiary: TypeOfDiaryModel(
|
||||
hasChosenDiet: false,
|
||||
hasChosenPlan: false,
|
||||
diaryState: null,
|
||||
),
|
||||
meals: [],
|
||||
chosenPlanId: null,
|
||||
dayOfChosenDiet: null,
|
||||
diet: null,
|
||||
),
|
||||
];
|
||||
|
||||
when(mockDiaryService.getDiaryIndexByDate(date: date))
|
||||
.thenAnswer((_) async => expectedDiaryList);
|
||||
|
||||
final result = await mockDiaryService.getDiaryIndexByDate(date: date);
|
||||
|
||||
expect(result, isA<List<DiaryDayModel>>());
|
||||
expect(result.length, 1);
|
||||
expect(result.first.id, 1);
|
||||
verify(mockDiaryService.getDiaryIndexByDate(date: date)).called(1);
|
||||
});
|
||||
|
||||
test('getDiaryDay - возвращает дневник по ID', () async {
|
||||
const diaryId = 1;
|
||||
const expectedWrapper = DiaryDayWrapperModel(
|
||||
diary: DiaryDayModel(
|
||||
id: diaryId,
|
||||
date: '2024-01-15',
|
||||
closed: 0,
|
||||
comment: '',
|
||||
typeOfDiary: TypeOfDiaryModel(
|
||||
hasChosenDiet: false,
|
||||
hasChosenPlan: false,
|
||||
diaryState: null,
|
||||
),
|
||||
meals: [],
|
||||
chosenPlanId: null,
|
||||
dayOfChosenDiet: null,
|
||||
diet: null,
|
||||
),
|
||||
);
|
||||
|
||||
when(mockDiaryService.getDiaryDay(diary: diaryId))
|
||||
.thenAnswer((_) async => expectedWrapper);
|
||||
|
||||
final result = await mockDiaryService.getDiaryDay(diary: diaryId);
|
||||
|
||||
expect(result, isA<DiaryDayWrapperModel>());
|
||||
expect(result.diary.id, diaryId);
|
||||
verify(mockDiaryService.getDiaryDay(diary: diaryId)).called(1);
|
||||
});
|
||||
|
||||
test('getNutrition - возвращает данные о питании', () async {
|
||||
const diaryId = 1;
|
||||
const expectedNutrition = NutritionDataModel(
|
||||
dailyNutritionIntake: NutritionModel(
|
||||
energy: 2000.0,
|
||||
proteins: 150.0,
|
||||
fats: 80.0,
|
||||
carbohydrates: 250.0,
|
||||
),
|
||||
dailyNutritionRecommendation: NutritionModel(
|
||||
energy: 2200.0,
|
||||
proteins: 160.0,
|
||||
fats: 90.0,
|
||||
carbohydrates: 270.0,
|
||||
),
|
||||
);
|
||||
|
||||
when(mockDiaryService.getNutrition(diary: diaryId))
|
||||
.thenAnswer((_) async => expectedNutrition);
|
||||
|
||||
final result = await mockDiaryService.getNutrition(diary: diaryId);
|
||||
|
||||
expect(result, isA<NutritionDataModel>());
|
||||
expect(result.dailyNutritionIntake.energy, 2000.0);
|
||||
verify(mockDiaryService.getNutrition(diary: diaryId)).called(1);
|
||||
});
|
||||
|
||||
test('uploadPhotoOfMeal - загружает фото приема пищи', () async {
|
||||
const diaryId = 1;
|
||||
const typeNo = 2;
|
||||
final photo = File('test.jpg');
|
||||
|
||||
when(mockDiaryService.uploadPhotoOfMeal(
|
||||
diary: diaryId,
|
||||
typeNo: typeNo,
|
||||
photo: photo,
|
||||
)).thenAnswer((_) async => Future.value());
|
||||
|
||||
await mockDiaryService.uploadPhotoOfMeal(
|
||||
diary: diaryId,
|
||||
typeNo: typeNo,
|
||||
photo: photo,
|
||||
);
|
||||
|
||||
verify(mockDiaryService.uploadPhotoOfMeal(
|
||||
diary: diaryId,
|
||||
typeNo: typeNo,
|
||||
photo: photo,
|
||||
)).called(1);
|
||||
});
|
||||
|
||||
test('deletePhotoOfMeal - удаляет фото приема пищи', () async {
|
||||
const diaryId = 1;
|
||||
const typeNo = 2;
|
||||
const userAttachment = 5;
|
||||
|
||||
when(mockDiaryService.deletePhotoOfMeal(
|
||||
diaryId: diaryId,
|
||||
typeNo: typeNo,
|
||||
userAttachment: userAttachment,
|
||||
)).thenAnswer((_) async => Future.value());
|
||||
|
||||
await mockDiaryService.deletePhotoOfMeal(
|
||||
diaryId: diaryId,
|
||||
typeNo: typeNo,
|
||||
userAttachment: userAttachment,
|
||||
);
|
||||
|
||||
verify(mockDiaryService.deletePhotoOfMeal(
|
||||
diaryId: diaryId,
|
||||
typeNo: typeNo,
|
||||
userAttachment: userAttachment,
|
||||
)).called(1);
|
||||
});
|
||||
|
||||
test('addProductToMeal - добавляет продукт в прием пищи', () async {
|
||||
const diaryId = 1;
|
||||
const typeNo = 2;
|
||||
const productName = 'Яблоко';
|
||||
const portion = '100г';
|
||||
const quantity = 2;
|
||||
const productNutritionalValueId = 10;
|
||||
|
||||
when(mockDiaryService.addProductToMeal(
|
||||
diary: diaryId,
|
||||
typeNo: typeNo,
|
||||
productName: productName,
|
||||
portion: portion,
|
||||
quantity: quantity,
|
||||
productNutritionalValueId: productNutritionalValueId,
|
||||
)).thenAnswer((_) async => Future.value());
|
||||
|
||||
await mockDiaryService.addProductToMeal(
|
||||
diary: diaryId,
|
||||
typeNo: typeNo,
|
||||
productName: productName,
|
||||
portion: portion,
|
||||
quantity: quantity,
|
||||
productNutritionalValueId: productNutritionalValueId,
|
||||
);
|
||||
|
||||
verify(mockDiaryService.addProductToMeal(
|
||||
diary: diaryId,
|
||||
typeNo: typeNo,
|
||||
productName: productName,
|
||||
portion: portion,
|
||||
quantity: quantity,
|
||||
productNutritionalValueId: productNutritionalValueId,
|
||||
)).called(1);
|
||||
});
|
||||
|
||||
test('addProductToMeal - добавляет продукт без nutritionalValueId', () async {
|
||||
const diaryId = 1;
|
||||
const typeNo = 2;
|
||||
const productName = 'Яблоко';
|
||||
const portion = '100г';
|
||||
const quantity = 2;
|
||||
|
||||
when(mockDiaryService.addProductToMeal(
|
||||
diary: diaryId,
|
||||
typeNo: typeNo,
|
||||
productName: productName,
|
||||
portion: portion,
|
||||
quantity: quantity,
|
||||
productNutritionalValueId: null,
|
||||
)).thenAnswer((_) async => Future.value());
|
||||
|
||||
await mockDiaryService.addProductToMeal(
|
||||
diary: diaryId,
|
||||
typeNo: typeNo,
|
||||
productName: productName,
|
||||
portion: portion,
|
||||
quantity: quantity,
|
||||
productNutritionalValueId: null,
|
||||
);
|
||||
|
||||
verify(mockDiaryService.addProductToMeal(
|
||||
diary: diaryId,
|
||||
typeNo: typeNo,
|
||||
productName: productName,
|
||||
portion: portion,
|
||||
quantity: quantity,
|
||||
productNutritionalValueId: null,
|
||||
)).called(1);
|
||||
});
|
||||
|
||||
test('updateProductInMeal - обновляет продукт в приеме пищи', () async {
|
||||
const diaryId = 1;
|
||||
const typeNo = 2;
|
||||
const portionModel = 5;
|
||||
final productInMeal = {'product_name': 'Яблоко', 'quantity': 3};
|
||||
|
||||
when(mockDiaryService.updateProductInMeal(
|
||||
diary: diaryId,
|
||||
typeNo: typeNo,
|
||||
portionModel: portionModel,
|
||||
productInMeal: productInMeal,
|
||||
)).thenAnswer((_) async => Future.value());
|
||||
|
||||
await mockDiaryService.updateProductInMeal(
|
||||
diary: diaryId,
|
||||
typeNo: typeNo,
|
||||
portionModel: portionModel,
|
||||
productInMeal: productInMeal,
|
||||
);
|
||||
|
||||
verify(mockDiaryService.updateProductInMeal(
|
||||
diary: diaryId,
|
||||
typeNo: typeNo,
|
||||
portionModel: portionModel,
|
||||
productInMeal: productInMeal,
|
||||
)).called(1);
|
||||
});
|
||||
|
||||
test('markEaten - отмечает продукт как съеденный', () async {
|
||||
const diaryId = 1;
|
||||
const typeNo = 2;
|
||||
const portionModel = 5;
|
||||
|
||||
when(mockDiaryService.markEaten(
|
||||
diary: diaryId,
|
||||
typeNo: typeNo,
|
||||
portionModel: portionModel,
|
||||
)).thenAnswer((_) async => Future.value());
|
||||
|
||||
await mockDiaryService.markEaten(
|
||||
diary: diaryId,
|
||||
typeNo: typeNo,
|
||||
portionModel: portionModel,
|
||||
);
|
||||
|
||||
verify(mockDiaryService.markEaten(
|
||||
diary: diaryId,
|
||||
typeNo: typeNo,
|
||||
portionModel: portionModel,
|
||||
)).called(1);
|
||||
});
|
||||
|
||||
test('unmarkEaten - снимает отметку о съеденном продукте', () async {
|
||||
const diaryId = 1;
|
||||
const typeNo = 2;
|
||||
const portionModel = 5;
|
||||
|
||||
when(mockDiaryService.unmarkEaten(
|
||||
diary: diaryId,
|
||||
typeNo: typeNo,
|
||||
portionModel: portionModel,
|
||||
)).thenAnswer((_) async => Future.value());
|
||||
|
||||
await mockDiaryService.unmarkEaten(
|
||||
diary: diaryId,
|
||||
typeNo: typeNo,
|
||||
portionModel: portionModel,
|
||||
);
|
||||
|
||||
verify(mockDiaryService.unmarkEaten(
|
||||
diary: diaryId,
|
||||
typeNo: typeNo,
|
||||
portionModel: portionModel,
|
||||
)).called(1);
|
||||
});
|
||||
|
||||
test('restore - восстанавливает продукт', () async {
|
||||
const diaryId = 1;
|
||||
const typeNo = 2;
|
||||
const portionModel = 5;
|
||||
|
||||
when(mockDiaryService.restore(
|
||||
diary: diaryId,
|
||||
typeNo: typeNo,
|
||||
portionModel: portionModel,
|
||||
)).thenAnswer((_) async => Future.value());
|
||||
|
||||
await mockDiaryService.restore(
|
||||
diary: diaryId,
|
||||
typeNo: typeNo,
|
||||
portionModel: portionModel,
|
||||
);
|
||||
|
||||
verify(mockDiaryService.restore(
|
||||
diary: diaryId,
|
||||
typeNo: typeNo,
|
||||
portionModel: portionModel,
|
||||
)).called(1);
|
||||
});
|
||||
|
||||
test('deleteProductFromMeal - удаляет продукт из приема пищи', () async {
|
||||
const diaryId = 1;
|
||||
const typeNo = 2;
|
||||
const portionModel = 5;
|
||||
|
||||
when(mockDiaryService.deleteProductFromMeal(
|
||||
diary: diaryId,
|
||||
typeNo: typeNo,
|
||||
portionModel: portionModel,
|
||||
)).thenAnswer((_) async => Future.value());
|
||||
|
||||
await mockDiaryService.deleteProductFromMeal(
|
||||
diary: diaryId,
|
||||
typeNo: typeNo,
|
||||
portionModel: portionModel,
|
||||
);
|
||||
|
||||
verify(mockDiaryService.deleteProductFromMeal(
|
||||
diary: diaryId,
|
||||
typeNo: typeNo,
|
||||
portionModel: portionModel,
|
||||
)).called(1);
|
||||
});
|
||||
|
||||
test('finishDiaryDay - завершает день дневника', () async {
|
||||
const diaryId = 1;
|
||||
const finishDiaryDayModel = FinishDiaryDayModel(
|
||||
wakeUp: '07:00',
|
||||
retire: '23:00',
|
||||
comment: 'Хороший день',
|
||||
);
|
||||
|
||||
when(mockDiaryService.finishDiaryDay(
|
||||
diary: diaryId,
|
||||
finishDiaryDayModel: finishDiaryDayModel,
|
||||
)).thenAnswer((_) async => Future.value());
|
||||
|
||||
await mockDiaryService.finishDiaryDay(
|
||||
diary: diaryId,
|
||||
finishDiaryDayModel: finishDiaryDayModel,
|
||||
);
|
||||
|
||||
verify(mockDiaryService.finishDiaryDay(
|
||||
diary: diaryId,
|
||||
finishDiaryDayModel: finishDiaryDayModel,
|
||||
)).called(1);
|
||||
});
|
||||
|
||||
test('finishDiaryDay - завершает день без комментария', () async {
|
||||
const diaryId = 1;
|
||||
const finishDiaryDayModel = FinishDiaryDayModel(
|
||||
wakeUp: '07:00',
|
||||
retire: '23:00',
|
||||
comment: null,
|
||||
);
|
||||
|
||||
when(mockDiaryService.finishDiaryDay(
|
||||
diary: diaryId,
|
||||
finishDiaryDayModel: finishDiaryDayModel,
|
||||
)).thenAnswer((_) async => Future.value());
|
||||
|
||||
await mockDiaryService.finishDiaryDay(
|
||||
diary: diaryId,
|
||||
finishDiaryDayModel: finishDiaryDayModel,
|
||||
);
|
||||
|
||||
verify(mockDiaryService.finishDiaryDay(
|
||||
diary: diaryId,
|
||||
finishDiaryDayModel: finishDiaryDayModel,
|
||||
)).called(1);
|
||||
});
|
||||
|
||||
test('fillSatiety - заполняет сытость', () async {
|
||||
const diaryId = 1;
|
||||
const typeNo = 2;
|
||||
const satiety = 5;
|
||||
|
||||
when(mockDiaryService.fillSatiety(
|
||||
diary: diaryId,
|
||||
typeNo: typeNo,
|
||||
satiety: satiety,
|
||||
)).thenAnswer((_) async => Future.value());
|
||||
|
||||
await mockDiaryService.fillSatiety(
|
||||
diary: diaryId,
|
||||
typeNo: typeNo,
|
||||
satiety: satiety,
|
||||
);
|
||||
|
||||
verify(mockDiaryService.fillSatiety(
|
||||
diary: diaryId,
|
||||
typeNo: typeNo,
|
||||
satiety: satiety,
|
||||
)).called(1);
|
||||
});
|
||||
|
||||
test('fillMood - заполняет настроение', () async {
|
||||
const diaryId = 1;
|
||||
const typeNo = 2;
|
||||
const mood = 4;
|
||||
|
||||
when(mockDiaryService.fillMood(
|
||||
diary: diaryId,
|
||||
typeNo: typeNo,
|
||||
mood: mood,
|
||||
)).thenAnswer((_) async => Future.value());
|
||||
|
||||
await mockDiaryService.fillMood(
|
||||
diary: diaryId,
|
||||
typeNo: typeNo,
|
||||
mood: mood,
|
||||
);
|
||||
|
||||
verify(mockDiaryService.fillMood(
|
||||
diary: diaryId,
|
||||
typeNo: typeNo,
|
||||
mood: mood,
|
||||
)).called(1);
|
||||
});
|
||||
|
||||
test('fillTime - заполняет время приема пищи', () async {
|
||||
const diaryId = 1;
|
||||
const typeNo = 2;
|
||||
const time = '12:30';
|
||||
|
||||
when(mockDiaryService.fillTime(
|
||||
diary: diaryId,
|
||||
typeNo: typeNo,
|
||||
time: time,
|
||||
)).thenAnswer((_) async => Future.value());
|
||||
|
||||
await mockDiaryService.fillTime(
|
||||
diary: diaryId,
|
||||
typeNo: typeNo,
|
||||
time: time,
|
||||
);
|
||||
|
||||
verify(mockDiaryService.fillTime(
|
||||
diary: diaryId,
|
||||
typeNo: typeNo,
|
||||
time: time,
|
||||
)).called(1);
|
||||
});
|
||||
|
||||
test('fillWakeup - заполняет время пробуждения', () async {
|
||||
const diaryId = 1;
|
||||
const wakeUp = '07:00';
|
||||
|
||||
when(mockDiaryService.fillWakeup(
|
||||
diary: diaryId,
|
||||
wakeUp: wakeUp,
|
||||
)).thenAnswer((_) async => Future.value());
|
||||
|
||||
await mockDiaryService.fillWakeup(
|
||||
diary: diaryId,
|
||||
wakeUp: wakeUp,
|
||||
);
|
||||
|
||||
verify(mockDiaryService.fillWakeup(
|
||||
diary: diaryId,
|
||||
wakeUp: wakeUp,
|
||||
)).called(1);
|
||||
});
|
||||
|
||||
test('fillRetire - заполняет время отхода ко сну', () async {
|
||||
const diaryId = 1;
|
||||
const retire = '23:00';
|
||||
|
||||
when(mockDiaryService.fillRetire(
|
||||
diary: diaryId,
|
||||
retire: retire,
|
||||
)).thenAnswer((_) async => Future.value());
|
||||
|
||||
await mockDiaryService.fillRetire(
|
||||
diary: diaryId,
|
||||
retire: retire,
|
||||
);
|
||||
|
||||
verify(mockDiaryService.fillRetire(
|
||||
diary: diaryId,
|
||||
retire: retire,
|
||||
)).called(1);
|
||||
});
|
||||
|
||||
test('sendProductToModeration - отправляет продукт на модерацию', () async {
|
||||
final data = {
|
||||
'name': 'Новый продукт',
|
||||
'energy': 100.0,
|
||||
'proteins': 10.0,
|
||||
'fats': 5.0,
|
||||
'carbohydrates': 15.0,
|
||||
};
|
||||
const expectedModeration = GlossaryModerationModel(
|
||||
glossary: GlossaryModel(
|
||||
id: 1,
|
||||
name: 'Новый продукт',
|
||||
grInPortion: 100,
|
||||
energyOn100Gr: 100.0,
|
||||
proteinsOn100Gr: 10.0,
|
||||
fatsOn100Gr: 5.0,
|
||||
carbohydratesOn100Gr: 15.0,
|
||||
energyOnPortion: 100.0,
|
||||
proteinsOnPortion: 10.0,
|
||||
fatsOnPortion: 5.0,
|
||||
carbohydratesOnPortion: 15.0,
|
||||
),
|
||||
);
|
||||
|
||||
when(mockDiaryService.sendProductToModeration(data: data))
|
||||
.thenAnswer((_) async => expectedModeration);
|
||||
|
||||
final result = await mockDiaryService.sendProductToModeration(data: data);
|
||||
|
||||
expect(result, isA<GlossaryModerationModel>());
|
||||
expect(result.glossary.id, 1);
|
||||
verify(mockDiaryService.sendProductToModeration(data: data)).called(1);
|
||||
});
|
||||
|
||||
test('commentUserDay - комментирует день пользователя', () async {
|
||||
const diaryId = 1;
|
||||
final commentModel = ConsultantCommentModel(
|
||||
comment: 'Хороший прогресс',
|
||||
mealsComments: {},
|
||||
portions: [],
|
||||
);
|
||||
|
||||
when(mockDiaryService.commentUserDay(id: diaryId, body: commentModel))
|
||||
.thenAnswer((_) async => Future.value());
|
||||
|
||||
await mockDiaryService.commentUserDay(id: diaryId, body: commentModel);
|
||||
|
||||
verify(mockDiaryService.commentUserDay(id: diaryId, body: commentModel))
|
||||
.called(1);
|
||||
});
|
||||
|
||||
test('getDiaryComments - получает комментарии дневника', () async {
|
||||
const planId = 1;
|
||||
const diaryId = 1;
|
||||
final expectedReview = ConsultantReviewModel(
|
||||
planName: 'План питания',
|
||||
planDuration: 30,
|
||||
currentPlanDay: 5,
|
||||
consultantComments: ConsultantComments(
|
||||
dayComment: 'Хороший день',
|
||||
mealsComments: [],
|
||||
portionsComments: [],
|
||||
),
|
||||
);
|
||||
|
||||
when(mockDiaryService.getDiaryComments(planId: planId, diaryId: diaryId))
|
||||
.thenAnswer((_) async => expectedReview);
|
||||
|
||||
final result =
|
||||
await mockDiaryService.getDiaryComments(planId: planId, diaryId: diaryId);
|
||||
|
||||
expect(result, isA<ConsultantReviewModel>());
|
||||
expect(result.planName, 'План питания');
|
||||
verify(mockDiaryService.getDiaryComments(planId: planId, diaryId: diaryId))
|
||||
.called(1);
|
||||
});
|
||||
|
||||
test('viewCommentOfDiaryDayByConsultant - отмечает комментарий как просмотренный', () async {
|
||||
const diaryId = 1;
|
||||
|
||||
when(mockDiaryService.viewCommentOfDiaryDayByConsultant(diaryId: diaryId))
|
||||
.thenAnswer((_) async => Future.value());
|
||||
|
||||
await mockDiaryService.viewCommentOfDiaryDayByConsultant(diaryId: diaryId);
|
||||
|
||||
verify(mockDiaryService.viewCommentOfDiaryDayByConsultant(diaryId: diaryId))
|
||||
.called(1);
|
||||
});
|
||||
|
||||
test('getGlossariesIndex - получает список глоссариев', () async {
|
||||
final filters = {'filters[id][\$in][0]': 1, 'filters[id][\$in][1]': 2};
|
||||
const expectedGlossary = GlossaryPaginationModel(
|
||||
glossariesList: [
|
||||
GlossaryModel(
|
||||
id: 1,
|
||||
name: 'Яблоко',
|
||||
grInPortion: 100,
|
||||
energyOn100Gr: 52.0,
|
||||
proteinsOn100Gr: 0.3,
|
||||
fatsOn100Gr: 0.2,
|
||||
carbohydratesOn100Gr: 14.0,
|
||||
energyOnPortion: 52.0,
|
||||
proteinsOnPortion: 0.3,
|
||||
fatsOnPortion: 0.2,
|
||||
carbohydratesOnPortion: 14.0,
|
||||
),
|
||||
],
|
||||
);
|
||||
|
||||
when(mockDiaryService.getGlossariesIndex(filters: filters))
|
||||
.thenAnswer((_) async => expectedGlossary);
|
||||
|
||||
final result = await mockDiaryService.getGlossariesIndex(filters: filters);
|
||||
|
||||
expect(result, isA<GlossaryPaginationModel>());
|
||||
expect(result.glossariesList.length, 1);
|
||||
verify(mockDiaryService.getGlossariesIndex(filters: filters)).called(1);
|
||||
});
|
||||
|
||||
test('getGlossariesIndex - получает список без фильтров', () async {
|
||||
const expectedGlossary = GlossaryPaginationModel(glossariesList: []);
|
||||
|
||||
when(mockDiaryService.getGlossariesIndex(filters: null))
|
||||
.thenAnswer((_) async => expectedGlossary);
|
||||
|
||||
final result = await mockDiaryService.getGlossariesIndex(filters: null);
|
||||
|
||||
expect(result, isA<GlossaryPaginationModel>());
|
||||
verify(mockDiaryService.getGlossariesIndex(filters: null)).called(1);
|
||||
});
|
||||
|
||||
test('createDay - создает новый день дневника', () async {
|
||||
final createDayModel = CreateDayModel(day: '2024-01-15');
|
||||
|
||||
when(mockDiaryService.createDay(body: createDayModel))
|
||||
.thenAnswer((_) async => Future.value());
|
||||
|
||||
await mockDiaryService.createDay(body: createDayModel);
|
||||
|
||||
verify(mockDiaryService.createDay(body: createDayModel)).called(1);
|
||||
});
|
||||
|
||||
test('getDiaryDayV2 - получает день дневника v2', () async {
|
||||
const day = '2024-01-15';
|
||||
const expectedDiary = DiaryDayModel(
|
||||
id: 1,
|
||||
date: day,
|
||||
closed: 0,
|
||||
comment: '',
|
||||
typeOfDiary: TypeOfDiaryModel(
|
||||
hasChosenDiet: false,
|
||||
hasChosenPlan: false,
|
||||
diaryState: null,
|
||||
),
|
||||
meals: [],
|
||||
chosenPlanId: null,
|
||||
dayOfChosenDiet: null,
|
||||
diet: null,
|
||||
);
|
||||
|
||||
when(mockDiaryService.getDiaryDayV2(day: day))
|
||||
.thenAnswer((_) async => expectedDiary);
|
||||
|
||||
final result = await mockDiaryService.getDiaryDayV2(day: day);
|
||||
|
||||
expect(result, isA<DiaryDayModel>());
|
||||
expect(result.id, 1);
|
||||
expect(result.date, day);
|
||||
verify(mockDiaryService.getDiaryDayV2(day: day)).called(1);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user