From 240f596b85875db8a4ee5f25f7cf31c5d066210b Mon Sep 17 00:00:00 2001 From: Veli Bacik Date: Mon, 11 Jan 2021 23:56:51 +0300 Subject: [PATCH 1/2] pedantic package and other fixed compelted --- analysis_options.yaml | 1 + lib/core/base/model/base_error.dart | 2 +- lib/core/components/button/icon_button.dart | 2 +- lib/core/components/button/normal_button.dart | 2 +- .../components/button/title_text_button.dart | 2 +- .../card/not_found_navigation_widget.dart | 2 +- lib/core/components/column/form_column.dart | 2 +- .../decoration/circle_decoration.dart | 4 ++- lib/core/constants/app/app_constants.dart | 10 +++---- lib/core/constants/image/image_constatns.dart | 11 +++----- lib/core/extension/string_extension.dart | 4 +-- lib/core/init/cache/locale_manager.dart | 15 ++++------- .../init/navigation/navigation_service.dart | 2 +- lib/core/init/network/ICoreDio.dart | 2 +- lib/core/init/network/IResponseModel.dart | 2 ++ lib/core/init/network/core_dio.dart | 12 +++++---- lib/core/init/network/network_manager.dart | 12 +++------ lib/core/init/network/vexana_manager.dart | 7 ++--- .../theme/light/light_theme_interface.dart | 6 ++--- lib/main.dart | 3 +-- .../_product/_constants/image_path_svg.dart | 11 ++++---- .../_widgets/button/face_book_button.dart | 11 ++++---- .../_widgets/button/login_button.dart | 3 ++- .../_widgets/listview/on_board_indicator.dart | 2 +- .../login/viewmodel/login_view_model.dart | 4 ++- .../viewModel/on_board_view_model.dart | 13 +++++----- .../authenticate/test/model/test_model.dart | 3 ++- .../test/viewmodel/test_view_model.dart | 4 +-- pubspec.lock | 2 +- pubspec.yaml | 1 + test/core/network/core_dio_mock.dart | 26 +++++++------------ test/core/network/dio_mock_model.dart | 11 ++++---- test/feature/login/login_test.dart | 14 +++++----- .../onboard/onboard_mock_view_model.dart | 10 ------- test/feature/onboard/onboard_test.dart | 5 ---- test/feature/test/sample_view_test.dart | 3 +-- 36 files changed, 100 insertions(+), 126 deletions(-) create mode 100644 analysis_options.yaml diff --git a/analysis_options.yaml b/analysis_options.yaml new file mode 100644 index 0000000..486705d --- /dev/null +++ b/analysis_options.yaml @@ -0,0 +1 @@ +include: package:pedantic/analysis_options.1.9.0.yaml diff --git a/lib/core/base/model/base_error.dart b/lib/core/base/model/base_error.dart index 89ab33e..4ba0682 100644 --- a/lib/core/base/model/base_error.dart +++ b/lib/core/base/model/base_error.dart @@ -1,4 +1,4 @@ -import 'package:fluttermvvmtemplate/core/init/network/IResponseModel.dart'; +import '../../init/network/IResponseModel.dart'; class BaseError extends IErrorModel { final String message; diff --git a/lib/core/components/button/icon_button.dart b/lib/core/components/button/icon_button.dart index dd9b1db..1c4a076 100644 --- a/lib/core/components/button/icon_button.dart +++ b/lib/core/components/button/icon_button.dart @@ -10,7 +10,7 @@ class IconNormalButton extends StatelessWidget { @override Widget build(BuildContext context) { return NormalButton( - onPressed: this.onPressed, + onPressed: onPressed, child: Center( child: Icon(icon), ), diff --git a/lib/core/components/button/normal_button.dart b/lib/core/components/button/normal_button.dart index b8dadfe..f8ab3cd 100644 --- a/lib/core/components/button/normal_button.dart +++ b/lib/core/components/button/normal_button.dart @@ -11,7 +11,7 @@ class NormalButton extends StatelessWidget { return RaisedButton( padding: EdgeInsets.all(15), elevation: 10, - onPressed: this.onPressed, + onPressed: onPressed, child: child, ); } diff --git a/lib/core/components/button/title_text_button.dart b/lib/core/components/button/title_text_button.dart index f77c76a..7b7b71e 100644 --- a/lib/core/components/button/title_text_button.dart +++ b/lib/core/components/button/title_text_button.dart @@ -10,7 +10,7 @@ class TitleTextButton extends StatelessWidget { @override Widget build(BuildContext context) { return NormalButton( - onPressed: this.onPressed, + onPressed: onPressed, child: Center( child: Text(text), ), diff --git a/lib/core/components/card/not_found_navigation_widget.dart b/lib/core/components/card/not_found_navigation_widget.dart index 0b177aa..d01e7e1 100644 --- a/lib/core/components/card/not_found_navigation_widget.dart +++ b/lib/core/components/card/not_found_navigation_widget.dart @@ -4,7 +4,7 @@ class NotFoundNavigationWidget extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( - body: Text("Not Found"), + body: Text('Not Found'), ); } } diff --git a/lib/core/components/column/form_column.dart b/lib/core/components/column/form_column.dart index 55df16d..fb619a5 100644 --- a/lib/core/components/column/form_column.dart +++ b/lib/core/components/column/form_column.dart @@ -12,7 +12,7 @@ class FormColumn extends StatelessWidget { Expanded( flex: 8, child: Column( - children: this.children, + children: children, ), ), Spacer(flex: 1), diff --git a/lib/core/components/decoration/circle_decoration.dart b/lib/core/components/decoration/circle_decoration.dart index 9a59865..90e3584 100644 --- a/lib/core/components/decoration/circle_decoration.dart +++ b/lib/core/components/decoration/circle_decoration.dart @@ -13,6 +13,8 @@ class _CirclePainter extends BoxPainter { final Paint _paint; final double radius; + Offset circleOffset; + _CirclePainter(Color color, this.radius) : _paint = Paint() ..color = color @@ -20,7 +22,7 @@ class _CirclePainter extends BoxPainter { @override void paint(Canvas canvas, Offset offset, ImageConfiguration cfg) { - final Offset circleOffset = offset + Offset(cfg.size.width / 2, cfg.size.height - radius - 5); + circleOffset = offset + Offset(cfg.size.width / 2, cfg.size.height - radius - 5); canvas.drawCircle(circleOffset, radius, _paint); } } diff --git a/lib/core/constants/app/app_constants.dart b/lib/core/constants/app/app_constants.dart index fa21986..cb062d6 100644 --- a/lib/core/constants/app/app_constants.dart +++ b/lib/core/constants/app/app_constants.dart @@ -1,8 +1,8 @@ class ApplicationConstants { - static const LANG_ASSET_PATH = "asset/lang"; - static const IPAD_NAME = "IPAD"; - static const FONT_FAMILY = "POPPINS"; - static const COMPANY_NAME = "HWA"; + static const LANG_ASSET_PATH = 'asset/lang'; + static const IPAD_NAME = 'IPAD'; + static const FONT_FAMILY = 'POPPINS'; + static const COMPANY_NAME = 'HWA'; - static const EMAIL_REGIEX = r"^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}\$"; + static const EMAIL_REGIEX = r'^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}\$'; } diff --git a/lib/core/constants/image/image_constatns.dart b/lib/core/constants/image/image_constatns.dart index 8ffce13..9f7890d 100644 --- a/lib/core/constants/image/image_constatns.dart +++ b/lib/core/constants/image/image_constatns.dart @@ -1,16 +1,13 @@ class ImageConstants { static ImageConstants _instace; - static ImageConstants get instance { - if (_instace == null) _instace = ImageConstants._init(); - return _instace; - } + static ImageConstants get instance => _instace ??= ImageConstants._init(); ImageConstants._init(); - String get logo => toPng("veli"); + String get logo => toPng('veli'); - String get hotDog => toPng("hotdogs"); + String get hotDog => toPng('hotdogs'); - String toPng(String name) => "asset/image/$name.png"; + String toPng(String name) => 'asset/image/$name.png'; } diff --git a/lib/core/extension/string_extension.dart b/lib/core/extension/string_extension.dart index f8ef77a..760e1b7 100644 --- a/lib/core/extension/string_extension.dart +++ b/lib/core/extension/string_extension.dart @@ -5,11 +5,11 @@ import '../constants/app/app_constants.dart'; extension StringLocalization on String { String get locale => this.tr(); - String get isValidEmail => this.contains(RegExp(ApplicationConstants.EMAIL_REGIEX)) ? null : "Email does not valid"; + String get isValidEmail => contains(RegExp(ApplicationConstants.EMAIL_REGIEX)) ? null : 'Email does not valid'; bool get isValidEmails => RegExp(ApplicationConstants.EMAIL_REGIEX).hasMatch(this); } extension ImagePathExtension on String { - String get toSVG => "asset/svg/$this.svg"; + String get toSVG => 'asset/svg/$this.svg'; } diff --git a/lib/core/init/cache/locale_manager.dart b/lib/core/init/cache/locale_manager.dart index b1e44f0..15db70e 100644 --- a/lib/core/init/cache/locale_manager.dart +++ b/lib/core/init/cache/locale_manager.dart @@ -3,7 +3,7 @@ import 'package:shared_preferences/shared_preferences.dart'; import '../../constants/enums/locale_keys_enum.dart'; class LocaleManager { - static LocaleManager _instance = LocaleManager._init(); + static final LocaleManager _instance = LocaleManager._init(); SharedPreferences _preferences; static LocaleManager get instance => _instance; @@ -13,11 +13,8 @@ class LocaleManager { _preferences = value; }); } - static prefrencesInit() async { - if (instance._preferences == null) { - instance._preferences = await SharedPreferences.getInstance(); - } - return; + static Future prefrencesInit() async { + instance._preferences ??= await SharedPreferences.getInstance(); } Future clearAll() async { @@ -32,9 +29,7 @@ class LocaleManager { await _preferences.setBool(key.toString(), value); } - String getStringValue(PreferencesKeys key) => - _preferences.getString(key.toString()) ?? ""; + String getStringValue(PreferencesKeys key) => _preferences.getString(key.toString()) ?? ''; - bool getBoolValue(PreferencesKeys key) => - _preferences.getBool(key.toString()) ?? false; + bool getBoolValue(PreferencesKeys key) => _preferences.getBool(key.toString()) ?? false; } diff --git a/lib/core/init/navigation/navigation_service.dart b/lib/core/init/navigation/navigation_service.dart index e7d3373..520a952 100644 --- a/lib/core/init/navigation/navigation_service.dart +++ b/lib/core/init/navigation/navigation_service.dart @@ -3,7 +3,7 @@ import 'package:flutter/cupertino.dart'; import 'INavigationService.dart'; class NavigationService implements INavigationService { - static NavigationService _instance = NavigationService._init(); + static final NavigationService _instance = NavigationService._init(); static NavigationService get instance => _instance; NavigationService._init(); diff --git a/lib/core/init/network/ICoreDio.dart b/lib/core/init/network/ICoreDio.dart index bee2377..653129d 100644 --- a/lib/core/init/network/ICoreDio.dart +++ b/lib/core/init/network/ICoreDio.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; -import 'package:fluttermvvmtemplate/core/init/network/IResponseModel.dart'; import '../../base/model/base_model.dart'; import '../../constants/enums/http_request_enum.dart'; +import 'IResponseModel.dart'; abstract class ICoreDio { Future> fetch(String path, diff --git a/lib/core/init/network/IResponseModel.dart b/lib/core/init/network/IResponseModel.dart index 3d54918..b64d78f 100644 --- a/lib/core/init/network/IResponseModel.dart +++ b/lib/core/init/network/IResponseModel.dart @@ -8,7 +8,9 @@ abstract class IErrorModel { } class ResponseModel extends IResponseModel { + @override final T data; + @override final IErrorModel error; ResponseModel({this.data, this.error}); diff --git a/lib/core/init/network/core_dio.dart b/lib/core/init/network/core_dio.dart index 1acf806..710da13 100644 --- a/lib/core/init/network/core_dio.dart +++ b/lib/core/init/network/core_dio.dart @@ -11,17 +11,19 @@ import '../../extension/network_exntension.dart'; import 'ICoreDio.dart'; import 'IResponseModel.dart'; -part "./network_core/core_operations.dart"; +part './network_core/core_operations.dart'; class CoreDio with DioMixin implements Dio, ICoreDio { + @override final BaseOptions options; CoreDio(this.options) { - this.options = options; - this.interceptors.add(InterceptorsWrapper()); - this.httpClientAdapter = DefaultHttpClientAdapter(); + options = options; + interceptors.add(InterceptorsWrapper()); + httpClientAdapter = DefaultHttpClientAdapter(); } + @override Future> fetch(String path, {@required HttpTypes type, @required T parseModel, @@ -35,7 +37,7 @@ class CoreDio with DioMixin implements Dio, ICoreDio { final model = _responseParser(parseModel, response.data); return ResponseModel(data: model); default: - return ResponseModel(error: BaseError("message")); + return ResponseModel(error: BaseError('message')); } } } diff --git a/lib/core/init/network/network_manager.dart b/lib/core/init/network/network_manager.dart index 6f8dfb8..133e963 100644 --- a/lib/core/init/network/network_manager.dart +++ b/lib/core/init/network/network_manager.dart @@ -1,12 +1,8 @@ -import 'dart:io'; - import 'package:dio/dio.dart'; -import 'package:fluttermvvmtemplate/core/init/network/ICoreDio.dart'; -import '../../base/model/base_error.dart'; -import '../../base/model/base_model.dart'; import '../../constants/enums/locale_keys_enum.dart'; import '../cache/locale_manager.dart'; +import 'ICoreDio.dart'; import 'core_dio.dart'; class NetworkManager { @@ -19,10 +15,8 @@ class NetworkManager { ICoreDio coreDio; NetworkManager._init() { - final baseOptions = BaseOptions( - baseUrl: "https://jsonplaceholder.typicode.com/", - headers: {"val": LocaleManager.instance.getStringValue(PreferencesKeys.TOKEN)}, - ); + final baseOptions = + BaseOptions(baseUrl: "https://jsonplaceholder.typicode.com/", headers: {"val": LocaleManager.instance.getStringValue(PreferencesKeys.TOKEN)}); // _dio = Dio(baseOptions); coreDio = CoreDio(baseOptions); diff --git a/lib/core/init/network/vexana_manager.dart b/lib/core/init/network/vexana_manager.dart index f770e11..247a4a0 100644 --- a/lib/core/init/network/vexana_manager.dart +++ b/lib/core/init/network/vexana_manager.dart @@ -5,12 +5,13 @@ import 'package:vexana/vexana.dart'; class VexanaManager { static VexanaManager _instace; static VexanaManager get instance { - if (_instace == null) _instace = VexanaManager._init(); + if (_instace != null) return _instace; + _instace = VexanaManager._init(); return _instace; } - static const String _iosBaseUrl = "http://localhost:3000/"; - static const String _androidBaseUrl = "http://10.0.2.2:3000/"; + static const String _iosBaseUrl = 'http://localhost:3000/'; + static const String _androidBaseUrl = 'http://10.0.2.2:3000/'; VexanaManager._init(); diff --git a/lib/core/init/theme/light/light_theme_interface.dart b/lib/core/init/theme/light/light_theme_interface.dart index 79ca933..b14dd03 100644 --- a/lib/core/init/theme/light/light_theme_interface.dart +++ b/lib/core/init/theme/light/light_theme_interface.dart @@ -1,6 +1,6 @@ -import 'package:fluttermvvmtemplate/core/init/theme/light/color_scheme_light.dart'; -import 'package:fluttermvvmtemplate/core/init/theme/light/padding_insets.dart'; -import 'package:fluttermvvmtemplate/core/init/theme/light/text_theme_light.dart'; +import 'color_scheme_light.dart'; +import 'padding_insets.dart'; +import 'text_theme_light.dart'; abstract class ILightTheme { TextThemeLight textThemeLight = TextThemeLight.instance; diff --git a/lib/main.dart b/lib/main.dart index 4fa98ac..74099f1 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,6 +1,5 @@ import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; -import 'package:fluttermvvmtemplate/view/home/build/feed/view/build_feed_view.dart'; import 'package:provider/provider.dart'; import 'core/constants/app/app_constants.dart'; @@ -10,7 +9,7 @@ import 'core/init/navigation/navigation_route.dart'; import 'core/init/navigation/navigation_service.dart'; import 'core/init/notifier/provider_list.dart'; import 'core/init/notifier/theme_notifer.dart'; -import 'view/authenticate/login/view/login_view.dart'; +import 'view/home/build/feed/view/build_feed_view.dart'; void main() { WidgetsFlutterBinding.ensureInitialized(); diff --git a/lib/view/_product/_constants/image_path_svg.dart b/lib/view/_product/_constants/image_path_svg.dart index 846c522..681bee5 100644 --- a/lib/view/_product/_constants/image_path_svg.dart +++ b/lib/view/_product/_constants/image_path_svg.dart @@ -1,15 +1,14 @@ -import 'package:fluttermvvmtemplate/core/extension/string_extension.dart'; +import '../../../core/extension/string_extension.dart'; class SVGImagePaths { static SVGImagePaths _instace; static SVGImagePaths get instance { - if (_instace == null) _instace = SVGImagePaths._init(); - return _instace; + return _instace ??= SVGImagePaths._init(); } SVGImagePaths._init(); - final relaxSVG = "relax".toSVG; - final astronautSVG = "astronaut".toSVG; - final chattingSVG = "chat".toSVG; + final relaxSVG = 'relax'.toSVG; + final astronautSVG = 'astronaut'.toSVG; + final chattingSVG = 'chat'.toSVG; } diff --git a/lib/view/_product/_widgets/button/face_book_button.dart b/lib/view/_product/_widgets/button/face_book_button.dart index 2bb33ea..13a6b53 100644 --- a/lib/view/_product/_widgets/button/face_book_button.dart +++ b/lib/view/_product/_widgets/button/face_book_button.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; -import 'package:fluttermvvmtemplate/core/components/button/title_text_button.dart'; + +import '../../../../core/components/button/title_text_button.dart'; class FaceBookButton extends StatelessWidget { final Function(FaceBookModel data, {String errorMessage}) onComplete; @@ -9,14 +10,14 @@ class FaceBookButton extends StatelessWidget { @override Widget build(BuildContext context) { return TitleTextButton( - text: "Facebbok login", + text: 'Facebbok login', onPressed: () { - final isLengthSixCharacter = "asdasdasd".length == 6; + final isLengthSixCharacter = 'asdasdasd'.length == 6; if (isLengthSixCharacter) { - this.onComplete(FaceBookModel("asdasd", "ASdasd")); + onComplete(FaceBookModel('asdasd', 'ASdasd')); } else { - this.onComplete(null, errorMessage: "Facebook user not found"); + onComplete(null, errorMessage: 'Facebook user not found'); } }, ); diff --git a/lib/view/_product/_widgets/button/login_button.dart b/lib/view/_product/_widgets/button/login_button.dart index 1c25271..76cf518 100644 --- a/lib/view/_product/_widgets/button/login_button.dart +++ b/lib/view/_product/_widgets/button/login_button.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; -import 'package:fluttermvvmtemplate/core/components/button/icon_button.dart'; + +import '../../../../core/components/button/icon_button.dart'; class MVVMLoginButton extends StatelessWidget { final Function(String data) onComplete; diff --git a/lib/view/_product/_widgets/listview/on_board_indicator.dart b/lib/view/_product/_widgets/listview/on_board_indicator.dart index c24aeb1..5ced910 100644 --- a/lib/view/_product/_widgets/listview/on_board_indicator.dart +++ b/lib/view/_product/_widgets/listview/on_board_indicator.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:fluttermvvmtemplate/core/components/list-view/indicator_list_view.dart'; +import '../../../../core/components/list-view/indicator_list_view.dart'; class OnBoardIndcator extends StatelessWidget { final int itemCount; diff --git a/lib/view/authenticate/login/viewmodel/login_view_model.dart b/lib/view/authenticate/login/viewmodel/login_view_model.dart index 029f133..ed63993 100644 --- a/lib/view/authenticate/login/viewmodel/login_view_model.dart +++ b/lib/view/authenticate/login/viewmodel/login_view_model.dart @@ -20,7 +20,9 @@ abstract class _LoginViewModelBase with Store, BaseViewModel { TextEditingController emailController; TextEditingController passwordController; + @override void setContext(BuildContext context) => this.context = context; + @override void init() { loginService = LoginService(VexanaManager.instance.networkManager); emailController = TextEditingController(); @@ -41,7 +43,7 @@ abstract class _LoginViewModelBase with Store, BaseViewModel { if (response != null) { scaffoldState.currentState.showSnackBar(SnackBar(content: Text(response.token))); - localeManager.setStringValue(PreferencesKeys.TOKEN, response.token); + await localeManager.setStringValue(PreferencesKeys.TOKEN, response.token); } } isLoadingChange(); diff --git a/lib/view/authenticate/onboard/viewModel/on_board_view_model.dart b/lib/view/authenticate/onboard/viewModel/on_board_view_model.dart index 23de05e..d208ee9 100644 --- a/lib/view/authenticate/onboard/viewModel/on_board_view_model.dart +++ b/lib/view/authenticate/onboard/viewModel/on_board_view_model.dart @@ -13,6 +13,7 @@ part 'on_board_view_model.g.dart'; class OnBoardViewModel = _OnBoardViewModelBase with _$OnBoardViewModel; abstract class _OnBoardViewModelBase with Store, BaseViewModel { + @override void setContext(BuildContext context) => this.context = context; List onBoardItems = []; @@ -27,13 +28,11 @@ abstract class _OnBoardViewModelBase with Store, BaseViewModel { currentIndex = value; } + @override void init() { - onBoardItems.add(OnBoardModel(LocaleKeys.onBoard_page1_title, - LocaleKeys.onBoard_page1_desc, SVGImagePaths.instance.astronautSVG)); - onBoardItems.add(OnBoardModel(LocaleKeys.onBoard_page1_title, - LocaleKeys.onBoard_page2_desc, SVGImagePaths.instance.chattingSVG)); - onBoardItems.add(OnBoardModel(LocaleKeys.onBoard_page3_title, - LocaleKeys.onBoard_page3_desc, SVGImagePaths.instance.relaxSVG)); + onBoardItems.add(OnBoardModel(LocaleKeys.onBoard_page1_title, LocaleKeys.onBoard_page1_desc, SVGImagePaths.instance.astronautSVG)); + onBoardItems.add(OnBoardModel(LocaleKeys.onBoard_page1_title, LocaleKeys.onBoard_page2_desc, SVGImagePaths.instance.chattingSVG)); + onBoardItems.add(OnBoardModel(LocaleKeys.onBoard_page3_title, LocaleKeys.onBoard_page3_desc, SVGImagePaths.instance.relaxSVG)); } @action @@ -46,6 +45,6 @@ abstract class _OnBoardViewModelBase with Store, BaseViewModel { await localeManager.setBoolValue(PreferencesKeys.IS_FIRST_APP, true); changeLoading(); - navigation.navigateToPageClear(path: NavigationConstants.TEST_VIEW); + await navigation.navigateToPageClear(path: NavigationConstants.TEST_VIEW); } } diff --git a/lib/view/authenticate/test/model/test_model.dart b/lib/view/authenticate/test/model/test_model.dart index 281d723..085ab04 100644 --- a/lib/view/authenticate/test/model/test_model.dart +++ b/lib/view/authenticate/test/model/test_model.dart @@ -13,12 +13,13 @@ class TestModel extends BaseModel { TestModel({this.userId, this.id, this.title, this.completed}); + @override Map toJson() { return _$TestModelToJson(this); } @override - fromJson(Map json) { + TestModel fromJson(Map json) { return _$TestModelFromJson(json); } } diff --git a/lib/view/authenticate/test/viewmodel/test_view_model.dart b/lib/view/authenticate/test/viewmodel/test_view_model.dart index 248ef68..a70487a 100644 --- a/lib/view/authenticate/test/viewmodel/test_view_model.dart +++ b/lib/view/authenticate/test/viewmodel/test_view_model.dart @@ -1,12 +1,10 @@ import 'package:flutter/cupertino.dart'; -import 'package:fluttermvvmtemplate/core/constants/enums/http_request_enum.dart'; -import 'package:fluttermvvmtemplate/core/init/network/IResponseModel.dart'; import 'package:mobx/mobx.dart'; import 'package:provider/provider.dart'; import '../../../../core/base/model/base_view_model.dart'; import '../../../../core/constants/enums/app_theme_enum.dart'; -import '../../../../core/init/network/network_manager.dart'; +import '../../../../core/constants/enums/http_request_enum.dart'; import '../../../../core/init/notifier/theme_notifer.dart'; import '../model/test_model.dart'; diff --git a/pubspec.lock b/pubspec.lock index 4b74f92..94b1c1c 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -470,7 +470,7 @@ packages: source: hosted version: "0.0.4+3" pedantic: - dependency: transitive + dependency: "direct main" description: name: pedantic url: "https://pub.dartlang.org" diff --git a/pubspec.yaml b/pubspec.yaml index f324326..73c5acf 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -35,6 +35,7 @@ dependencies: kartal: ^1.1.0 mobx: ^1.2.1 mobx_codegen: ^1.1.0 + pedantic: ^1.9.2 provider: ^4.1.3 shared_preferences: ^0.5.7+3 vexana: ^1.2.2 diff --git a/test/core/network/core_dio_mock.dart b/test/core/network/core_dio_mock.dart index eb55611..4e7d92c 100644 --- a/test/core/network/core_dio_mock.dart +++ b/test/core/network/core_dio_mock.dart @@ -13,20 +13,17 @@ import 'package:fluttermvvmtemplate/core/init/network/ICoreDio.dart'; import 'package:fluttermvvmtemplate/core/init/network/IResponseModel.dart'; class CoreDioMock with DioMixin implements ICoreDioFull, Dio { + @override final BaseOptions options; CoreDioMock(this.options) { - this.options = options; - this.interceptors.add(InterceptorsWrapper()); - this.httpClientAdapter = DefaultHttpClientAdapter(); + options = options; + interceptors.add(InterceptorsWrapper()); + httpClientAdapter = DefaultHttpClientAdapter(); } @override Future> fetch(String path, - {HttpTypes type, - T parseModel, - data, - Map queryParameters, - void Function(int p1, int p2) onReceiveProgress}) async { + {HttpTypes type, T parseModel, data, Map queryParameters, void Function(int p1, int p2) onReceiveProgress}) async { final response = await request(path, data: data, options: Options(method: type.rawValue)); switch (response.statusCode) { @@ -35,17 +32,14 @@ class CoreDioMock with DioMixin implements ICoreDioFull, Dio { final model = _responseParser(parseModel, response.data); return ResponseModel(data: model); default: - return ResponseModel(error: BaseError("message")); + return ResponseModel(error: BaseError('message')); } } + @override Future> fetchNoNetwork(String path, - {HttpTypes type, - T parseModel, - data, - Map queryParameters, - void Function(int p1, int p2) onReceiveProgress}) async { - String dumyJson = """[ + {HttpTypes type, T parseModel, data, Map queryParameters, void Function(int p1, int p2) onReceiveProgress}) async { + final dumyJson = '''[ { "userId": 1, "id": 1, @@ -57,7 +51,7 @@ class CoreDioMock with DioMixin implements ICoreDioFull, Dio { "id": 2, "title": "qui est esse", "body": "est rerum tempore vitaensequi sint nihil reprehenderit dolor beatae ea dolores nequenfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendisnqui aperiam non debitis possimus qui neque nisi nulla" - }]"""; + }]'''; final response = jsonDecode(dumyJson); final model = _responseParser(parseModel, response); return ResponseModel(data: model); diff --git a/test/core/network/dio_mock_model.dart b/test/core/network/dio_mock_model.dart index 79f4672..a13f365 100644 --- a/test/core/network/dio_mock_model.dart +++ b/test/core/network/dio_mock_model.dart @@ -15,12 +15,13 @@ class PostModel extends BaseModel { body = json['body']; } + @override Map toJson() { - final Map data = new Map(); - data['userId'] = this.userId; - data['id'] = this.id; - data['title'] = this.title; - data['body'] = this.body; + final data = {}; + data['userId'] = userId; + data['id'] = id; + data['title'] = title; + data['body'] = body; return data; } diff --git a/test/feature/login/login_test.dart b/test/feature/login/login_test.dart index 1e98d44..da57709 100644 --- a/test/feature/login/login_test.dart +++ b/test/feature/login/login_test.dart @@ -3,38 +3,38 @@ import 'package:fluttermvvmtemplate/core/base/model/base_error.dart'; main() { setUp(() { - print("Here"); + print('Here'); }); - test("User Login Fail Test", () { + test('User Login Fail Test', () { final isUserLogin = true; expect(isUserLogin, isTrue); }); - group("User Login Full Test", () { + group('User Login Full Test', () { //MARK: test3 - test("User Login Fail Test", () { + test('User Login Fail Test', () { final isUserLogin = true; expect(isUserLogin, isTrue); }); //MARK: test3 - test("User Login Fail Test", () { + test('User Login Fail Test', () { final isUserLogin = true; expect(isUserLogin, isTrue); }); //MARK: test3 - test("User Login Fail Test", () { + test('User Login Fail Test', () { final isUserLogin = true; expect(isUserLogin, isTrue); }); test('dynamic parse', () async { - final error = BaseError("aaa"); + final error = BaseError('aaa'); final errorDynamic = error as dynamic; // final errorDynamic2 = errorDynamic as TestModel; diff --git a/test/feature/onboard/onboard_mock_view_model.dart b/test/feature/onboard/onboard_mock_view_model.dart index 12afaa1..d8f0874 100644 --- a/test/feature/onboard/onboard_mock_view_model.dart +++ b/test/feature/onboard/onboard_mock_view_model.dart @@ -1,13 +1,3 @@ -import 'package:dio/dio.dart'; -import 'package:fluttermvvmtemplate/core/constants/enums/http_request_enum.dart'; -import 'package:fluttermvvmtemplate/core/init/network/core_dio.dart'; -import 'package:fluttermvvmtemplate/view/authenticate/onboard/model/on_board_model.dart'; -import 'package:fluttermvvmtemplate/core/init/network/ICoreDio.dart'; -import 'package:flutter/src/widgets/framework.dart'; -import 'package:fluttermvvmtemplate/view/authenticate/onboard/viewModel/on_board_view_model.dart'; - -import '../../core/network/dio_mock_model.dart'; - //TODO: Test // class OnBoardMockViewModel implements OnBoardViewModel { // @override diff --git a/test/feature/onboard/onboard_test.dart b/test/feature/onboard/onboard_test.dart index 3c9fe3e..a8cdeff 100644 --- a/test/feature/onboard/onboard_test.dart +++ b/test/feature/onboard/onboard_test.dart @@ -1,8 +1,3 @@ -import 'package:flutter_test/flutter_test.dart'; -import 'package:shared_preferences/shared_preferences.dart'; - -import 'onboard_mock_view_model.dart'; - //TODO:TEST // main() { // OnBoardMockViewModel mockViewModel; diff --git a/test/feature/test/sample_view_test.dart b/test/feature/test/sample_view_test.dart index 479baa9..dc38201 100644 --- a/test/feature/test/sample_view_test.dart +++ b/test/feature/test/sample_view_test.dart @@ -3,9 +3,8 @@ import 'package:fluttermvvmtemplate/core/init/network/ICoreDio.dart'; import 'package:fluttermvvmtemplate/core/init/network/network_manager.dart'; main() { - ICoreDio coreDio; setUp(() { - coreDio = NetworkManager.instance.coreDio; + final _ = NetworkManager.instance.coreDio; }); test("Sample", () {}); } From cb2b537b71b7c39528ddcf75a7d926478a0c1b72 Mon Sep 17 00:00:00 2001 From: Veli Bacik Date: Mon, 11 Jan 2021 23:57:31 +0300 Subject: [PATCH 2/2] pedantic package and other fixed compelted --- lib/view/_product/enum/network_route_enum.dart | 6 +++--- lib/view/authenticate/login/view/login_view.dart | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/view/_product/enum/network_route_enum.dart b/lib/view/_product/enum/network_route_enum.dart index 064edbd..66d7210 100644 --- a/lib/view/_product/enum/network_route_enum.dart +++ b/lib/view/_product/enum/network_route_enum.dart @@ -4,11 +4,11 @@ extension NetwrokRoutesString on NetworkRoutes { String get rawValue { switch (this) { case NetworkRoutes.LOGIN: - return "login"; + return 'login'; case NetworkRoutes.BUILD_HOME: - return "house"; + return 'house'; default: - throw Exception("Routes Not FouND"); + throw Exception('Routes Not FouND'); } } } diff --git a/lib/view/authenticate/login/view/login_view.dart b/lib/view/authenticate/login/view/login_view.dart index c7c1845..dd22591 100644 --- a/lib/view/authenticate/login/view/login_view.dart +++ b/lib/view/authenticate/login/view/login_view.dart @@ -63,7 +63,7 @@ class LoginView extends StatelessWidget { indicatorWeight: 5, indicatorSize: TabBarIndicatorSize.label, tabs: [ - Tab(text: " ${LocaleKeys.login_tab1.tr()} "), + Tab(text: ' ${LocaleKeys.login_tab1.tr()} '), Tab(text: LocaleKeys.login_tab2.tr()), ]); } @@ -92,7 +92,7 @@ class LoginView extends StatelessWidget { return Observer(builder: (_) { return TextFormField( controller: viewModel.passwordController, - validator: (value) => value.isNotEmpty ? null : "This field required", + validator: (value) => value.isNotEmpty ? null : 'This field required', obscureText: viewModel.isLockOpen, decoration: InputDecoration( labelStyle: context.textTheme.subtitle1, @@ -113,7 +113,7 @@ class LoginView extends StatelessWidget { TextFormField buildTextFormFieldEmail(BuildContext context, LoginViewModel viewModel) { return TextFormField( controller: viewModel.emailController, - validator: (value) => value.isValidEmails ? "asdasd" : null, + validator: (value) => value.isValidEmails ? 'asdasd' : null, decoration: InputDecoration( labelText: LocaleKeys.login_email.tr(), labelStyle: context.textTheme.subtitle1,