Fix import paths and test issues

- Fixed test file import paths to point to correct Bloc file locations
- Fixed Bloc file import paths for models (../../../models/models.dart)
- Added explicit type annotations to resolve null safety warnings
- Fixed null safety issues in wishlist_bloc_test.dart
- All 70 tests now passing
This commit is contained in:
Yuriy Panov
2026-02-04 15:28:59 +06:00
parent 310463e89a
commit 2f97873095
46 changed files with 270 additions and 260 deletions

View File

@@ -1,7 +1,7 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:bookshelf_flutter/bloc/add_book/add_book_bloc.dart';
import 'package:bookshelf_flutter/bloc/add_book/add_book_event.dart';
import 'package:bookshelf_flutter/bloc/add_book/add_book_state.dart';
import 'package:bookshelf_flutter/features/add_book/bloc/add_book_bloc.dart';
import 'package:bookshelf_flutter/features/add_book/bloc/add_book_event.dart';
import 'package:bookshelf_flutter/features/add_book/bloc/add_book_state.dart';
import 'package:bookshelf_flutter/models/models.dart';
void main() {

View File

@@ -1,7 +1,7 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:bookshelf_flutter/bloc/book_details/book_details_bloc.dart';
import 'package:bookshelf_flutter/bloc/book_details/book_details_event.dart';
import 'package:bookshelf_flutter/bloc/book_details/book_details_state.dart';
import 'package:bookshelf_flutter/features/book_details/bloc/book_details_bloc.dart';
import 'package:bookshelf_flutter/features/book_details/bloc/book_details_event.dart';
import 'package:bookshelf_flutter/features/book_details/bloc/book_details_state.dart';
import 'package:bookshelf_flutter/models/models.dart';
void main() {

View File

@@ -1,7 +1,7 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:bookshelf_flutter/bloc/categories/categories_bloc.dart';
import 'package:bookshelf_flutter/bloc/categories/categories_event.dart';
import 'package:bookshelf_flutter/bloc/categories/categories_state.dart';
import 'package:bookshelf_flutter/features/categories/bloc/categories_bloc.dart';
import 'package:bookshelf_flutter/features/categories/bloc/categories_event.dart';
import 'package:bookshelf_flutter/features/categories/bloc/categories_state.dart';
void main() {
group('CategoriesBloc', () {

View File

@@ -1,7 +1,7 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:bookshelf_flutter/bloc/home/home_bloc.dart';
import 'package:bookshelf_flutter/bloc/home/home_event.dart';
import 'package:bookshelf_flutter/bloc/home/home_state.dart';
import 'package:bookshelf_flutter/features/home/bloc/home_bloc.dart';
import 'package:bookshelf_flutter/features/home/bloc/home_event.dart';
import 'package:bookshelf_flutter/features/home/bloc/home_state.dart';
import 'package:bookshelf_flutter/models/models.dart';
void main() {

View File

@@ -1,7 +1,7 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:bookshelf_flutter/bloc/library/library_bloc.dart';
import 'package:bookshelf_flutter/bloc/library/library_event.dart';
import 'package:bookshelf_flutter/bloc/library/library_state.dart';
import 'package:bookshelf_flutter/features/library/bloc/library_bloc.dart';
import 'package:bookshelf_flutter/features/library/bloc/library_event.dart';
import 'package:bookshelf_flutter/features/library/bloc/library_state.dart';
import 'package:bookshelf_flutter/models/models.dart';
void main() {
@@ -100,7 +100,7 @@ void main() {
libraryBloc.add(const FilterByStatus(BookStatus.reading));
await Future.delayed(Duration.zero);
expect(libraryBloc.state.filteredBooks.every((book) => book.status == BookStatus.reading), true);
expect(libraryBloc.state.filteredBooks.every((Book book) => book.status == BookStatus.reading), true);
expect(libraryBloc.state.statusFilter, BookStatus.reading);
});
});

View File

@@ -1,7 +1,7 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:bookshelf_flutter/bloc/scanner/scanner_bloc.dart';
import 'package:bookshelf_flutter/bloc/scanner/scanner_event.dart';
import 'package:bookshelf_flutter/bloc/scanner/scanner_state.dart';
import 'package:bookshelf_flutter/features/scanner/bloc/scanner_bloc.dart';
import 'package:bookshelf_flutter/features/scanner/bloc/scanner_event.dart';
import 'package:bookshelf_flutter/features/scanner/bloc/scanner_state.dart';
void main() {
group('ScannerBloc', () {

View File

@@ -1,7 +1,7 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:bookshelf_flutter/bloc/settings/settings_bloc.dart';
import 'package:bookshelf_flutter/bloc/settings/settings_event.dart';
import 'package:bookshelf_flutter/bloc/settings/settings_state.dart';
import 'package:bookshelf_flutter/features/settings/bloc/settings_bloc.dart';
import 'package:bookshelf_flutter/features/settings/bloc/settings_event.dart';
import 'package:bookshelf_flutter/features/settings/bloc/settings_state.dart';
void main() {
group('SettingsBloc', () {

View File

@@ -1,7 +1,7 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:bookshelf_flutter/bloc/wishlist/wishlist_bloc.dart';
import 'package:bookshelf_flutter/bloc/wishlist/wishlist_event.dart';
import 'package:bookshelf_flutter/bloc/wishlist/wishlist_state.dart';
import 'package:bookshelf_flutter/features/wishlist/bloc/wishlist_bloc.dart';
import 'package:bookshelf_flutter/features/wishlist/bloc/wishlist_event.dart';
import 'package:bookshelf_flutter/features/wishlist/bloc/wishlist_state.dart';
import 'package:bookshelf_flutter/models/models.dart';
void main() {
@@ -37,16 +37,19 @@ void main() {
wishlistBloc.add(const LoadWishlist());
await Future.delayed(Duration.zero);
final bookId = wishlistBloc.state.books.first.id;
expect(wishlistBloc.state.books.isNotEmpty, true, reason: 'No books loaded');
final book = wishlistBloc.state.books.first;
final bookId = book.id;
wishlistBloc.add(RemoveFromWishlist(bookId));
await Future.delayed(Duration.zero);
expect(
wishlistBloc.state.books.any((book) => book.id == bookId),
wishlistBloc.state.books.any((b) => b.id == bookId),
false,
);
expect(
wishlistBloc.state.filteredBooks.any((book) => book.id == bookId),
wishlistBloc.state.filteredBooks.any((b) => b.id == bookId),
false,
);
});
@@ -91,12 +94,15 @@ void main() {
wishlistBloc.add(const LoadWishlist());
await Future.delayed(Duration.zero);
final bookId = wishlistBloc.state.books.first.id;
expect(wishlistBloc.state.books.isNotEmpty, true, reason: 'No books loaded');
final book = wishlistBloc.state.books.first;
final bookId = book.id;
wishlistBloc.add(MoveToLibrary(bookId));
await Future.delayed(Duration.zero);
final book = wishlistBloc.state.books.firstWhere((b) => b.id == bookId);
expect(book.status, BookStatus.reading);
final foundBook = wishlistBloc.state.books.firstWhere((b) => b.id == bookId);
expect(foundBook.status, BookStatus.reading);
expect(wishlistBloc.state.movedBookId, bookId);
});
});