test(app): add geocoding and restaurant card coverage
This commit is contained in:
@@ -177,7 +177,7 @@ void main() {
|
||||
Restaurant(
|
||||
id: '1',
|
||||
name: '김치찌개',
|
||||
category: 'korean',
|
||||
category: '한식',
|
||||
subCategory: '한식',
|
||||
roadAddress: '서울시',
|
||||
jibunAddress: '서울시',
|
||||
@@ -190,7 +190,7 @@ void main() {
|
||||
Restaurant(
|
||||
id: '2',
|
||||
name: '스시',
|
||||
category: 'japanese',
|
||||
category: '일식',
|
||||
subCategory: '일식',
|
||||
roadAddress: '서울시',
|
||||
jibunAddress: '서울시',
|
||||
@@ -208,10 +208,14 @@ void main() {
|
||||
|
||||
// Act - 카테고리 필터 설정
|
||||
container.read(selectedCategoryProvider.notifier).state = '한식';
|
||||
container.read(searchQueryProvider.notifier).state = '김치';
|
||||
final filtered = await container.read(
|
||||
filteredRestaurantsProvider.future,
|
||||
);
|
||||
|
||||
// Assert
|
||||
// filteredRestaurantsProvider는 StreamProvider이므로 실제 테스트에서는
|
||||
// 비동기 처리가 필요함
|
||||
expect(filtered.length, 1);
|
||||
expect(filtered.first.name, '김치찌개');
|
||||
},
|
||||
);
|
||||
|
||||
@@ -257,5 +261,69 @@ void main() {
|
||||
expect(result.first.name, '가까운 맛집');
|
||||
},
|
||||
);
|
||||
|
||||
test('categoriesProvider emits sorted unique categories', () async {
|
||||
// Arrange
|
||||
final restaurants = [
|
||||
Restaurant(
|
||||
id: '1',
|
||||
name: '카테고리1',
|
||||
category: '양식',
|
||||
subCategory: '파스타',
|
||||
roadAddress: '서울시',
|
||||
jibunAddress: '서울시',
|
||||
latitude: 0,
|
||||
longitude: 0,
|
||||
source: DataSource.USER_INPUT,
|
||||
createdAt: DateTime.now(),
|
||||
updatedAt: DateTime.now(),
|
||||
),
|
||||
Restaurant(
|
||||
id: '2',
|
||||
name: '카테고리2',
|
||||
category: '한식',
|
||||
subCategory: '찌개',
|
||||
roadAddress: '서울시',
|
||||
jibunAddress: '서울시',
|
||||
latitude: 0,
|
||||
longitude: 0,
|
||||
source: DataSource.USER_INPUT,
|
||||
createdAt: DateTime.now(),
|
||||
updatedAt: DateTime.now(),
|
||||
),
|
||||
Restaurant(
|
||||
id: '3',
|
||||
name: '카테고리3',
|
||||
category: '한식',
|
||||
subCategory: '비빔밥',
|
||||
roadAddress: '서울시',
|
||||
jibunAddress: '서울시',
|
||||
latitude: 0,
|
||||
longitude: 0,
|
||||
source: DataSource.USER_INPUT,
|
||||
createdAt: DateTime.now(),
|
||||
updatedAt: DateTime.now(),
|
||||
),
|
||||
];
|
||||
|
||||
when(
|
||||
mockRepository.watchRestaurants(),
|
||||
).thenAnswer((_) => Stream.value(restaurants));
|
||||
|
||||
final categoriesContainer = ProviderContainer(
|
||||
overrides: [
|
||||
restaurantListProvider.overrideWith(
|
||||
(ref) => Stream.value(restaurants),
|
||||
),
|
||||
],
|
||||
);
|
||||
|
||||
final categories = await categoriesContainer
|
||||
.read(categoriesProvider.stream)
|
||||
.first;
|
||||
|
||||
expect(categories, ['양식', '한식']);
|
||||
categoriesContainer.dispose();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user