Skip to content

Commit

Permalink
feat: fix comments and add cubit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
fedecor9 committed Dec 14, 2023
1 parent 78a968f commit 5c15e02
Show file tree
Hide file tree
Showing 17 changed files with 412 additions and 131 deletions.
3 changes: 3 additions & 0 deletions .github/hooks/pre-push
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,6 @@

printf "\e[33;1m%s\e[0m\n" 'Running the Pre-push checks'
./scripts/checks.sh

printf "\e[33;1m%s\e[0m\n" 'Running the Pre-push tests'
fvm flutter test
14 changes: 6 additions & 8 deletions analysis_options.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -112,18 +112,16 @@ dart_code_metrics:
allowed-duplicated-chains: 3
- prefer-trailing-comma



# Additional information about this file can be found at
# https://dart.dev/guides/language/analysis-options
analyzer:
exclude:
- '**/*.freezed.dart'
- '**/*.g.dart'
- '**/*.gen.dart'
- '**/*.gr.dart'
- 'bricks'
- 'lib/generated_plugin_registrant.dart'
- "**/*.freezed.dart"
- "**/*.g.dart"
- "**/*.gen.dart"
- "**/*.gr.dart"
- "bricks"
- "lib/generated_plugin_registrant.dart"
errors:
invalid_annotation_target: ignore
unused_element: ignore # https://github.com/dart-lang/sdk/issues/49025
3 changes: 2 additions & 1 deletion lib/core/di/di_repository_module.dart
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ class RepositoryDiModule {
extension _GetItDiModuleExtensions on GetIt {
void _setupProvidersAndUtils() {
registerLazySingleton<HttpService>(
() => HttpServiceDio([AuthInterceptor(get())]));
() => HttpServiceDio([AuthInterceptor(get())]),
);
}

void _setupRepositories() {
Expand Down
15 changes: 13 additions & 2 deletions lib/core/model/db/repository_db_entity.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import 'package:equatable/equatable.dart';
import 'package:floor/floor.dart';

@Entity(tableName: 'projects')
class ProjectDbEntity {
class ProjectDbEntity extends Equatable {
@primaryKey
final int id;
final String name;
Expand All @@ -10,12 +11,22 @@ class ProjectDbEntity {
final String imageUrl;
final String language;

ProjectDbEntity({
const ProjectDbEntity({
required this.id,
required this.name,
required this.description,
required this.url,
required this.imageUrl,
required this.language,
});

@override
List<Object?> get props => [
id,
name,
description,
url,
imageUrl,
language,
];
}
98 changes: 97 additions & 1 deletion pubspec.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ dependencies:
dio: 5.3.2
equatable: 2.0.5
floor: 1.4.2
mocktail: 1.0.1
flutter_bloc: 8.1.3
flutter_dotenv: 5.1.0
flutter_native_splash: 2.3.2
Expand Down Expand Up @@ -53,6 +52,8 @@ dev_dependencies:

auto_route_generator: 7.3.1
build_runner: 2.4.6
mocktail: 1.0.1
bloc_test: 9.1.5
dart_code_metrics: 5.7.6
floor_generator: 1.4.2
flutter_flavorizr: 2.2.1
Expand Down
4 changes: 4 additions & 0 deletions test/common/general_helpers.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import 'package:flutter_template/core/source/common/app_database.dart';

Future<AppDatabase> setupFloorDatabase() async =>
$FloorAppDatabase.inMemoryDatabaseBuilder().build();
35 changes: 35 additions & 0 deletions test/common/mocks.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import 'package:bloc_test/bloc_test.dart';
import 'package:flutter_template/core/repository/project_repository.dart';
import 'package:flutter_template/core/repository/session_repository.dart';
import 'package:flutter_template/core/source/auth_local_source.dart';
import 'package:flutter_template/core/source/auth_remote_source.dart';
import 'package:flutter_template/core/source/common/http_service.dart';
import 'package:flutter_template/core/source/common/local_shared_preferences_storage.dart';
import 'package:flutter_template/core/source/project_local_source.dart';
import 'package:flutter_template/core/source/project_remote_source.dart';
import 'package:flutter_template/ui/section/error_handler/global_event_handler_cubit.dart';
import 'package:mocktail/mocktail.dart';

//* Services
class HttpServiceMock extends Mock implements HttpService {}

//* Data sources
class ProjectLocalSourceMock extends Mock implements ProjectLocalSource {}

class ProjectRemoteSourceMock extends Mock implements ProjectRemoteSource {}

class AuthLocalSourceMock extends Mock implements AuthLocalSource {}

class AuthRemoteSourceMock extends Mock implements AuthRemoteSource {}

//* Repositories
class MockSessionRepository extends Mock implements SessionRepository {}

class MockProjectRepository extends Mock implements ProjectRepository {}

//* Cubits
class MockGlobalEventHandlerCubit extends MockCubit<GlobalEventHandlerState>
implements GlobalEventHandlerCubit {}

class LocalSharedPreferencesStorageMock extends Mock
implements LocalSharedPreferencesStorage {}
26 changes: 26 additions & 0 deletions test/common/project_helpers.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import 'package:flutter_template/core/model/db/repository_db_entity.dart';
import 'package:flutter_template/core/model/project.dart';

List<ProjectDbEntity> generateProjectDbEntities(int count) => Iterable.generate(
count,
(index) => ProjectDbEntity(
id: index,
name: 'Test $index project',
description: 'Test $index project description',
url: 'test$index.com',
imageUrl: '',
language: 'ES',
),
).toList();

List<Project> generateProjects(int count) => Iterable.generate(
count,
(index) => Project(
id: index,
name: 'Test $index project',
description: 'Test $index project description',
url: 'test$index.com',
imageUrl: '',
language: 'ES',
),
).toList();
Loading

0 comments on commit 5c15e02

Please sign in to comment.