Skip to content

Commit

Permalink
improve unit test
Browse files Browse the repository at this point in the history
  • Loading branch information
shiosyakeyakini-info committed Nov 4, 2023
1 parent 70754b0 commit e88295f
Show file tree
Hide file tree
Showing 8 changed files with 2,424 additions and 1,346 deletions.
3 changes: 3 additions & 0 deletions lib/providers.dart
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import 'package:miria/state_notifier/common/misskey_server_list_notifier.dart';
import 'package:miria/state_notifier/note_create_page/note_create_state_notifier.dart';
import 'package:miria/state_notifier/photo_edit_page/photo_edit_state_notifier.dart';
import 'package:misskey_dart/misskey_dart.dart';
import 'package:flutter_cache_manager/flutter_cache_manager.dart';

final dioProvider = Provider((ref) => Dio());
final fileSystemProvider =
Expand Down Expand Up @@ -257,3 +258,5 @@ final misskeyServerListNotifierProvider = AsyncNotifierProvider.autoDispose<
MisskeyServerListNotifier, List<JoinMisskeyInstanceInfo>>(
MisskeyServerListNotifier.new,
);

final cacheManagerProvider = Provider<BaseCacheManager?>((ref) => null);
3 changes: 2 additions & 1 deletion lib/view/common/misskey_notes/misskey_file_view.dart
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ class MisskeyImageState extends ConsumerState<MisskeyImage> {
return cachedWidget!;
}

return FutureBuilder(
cachedWidget = FutureBuilder(
future: Future.delayed(const Duration(milliseconds: 100)),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
Expand Down Expand Up @@ -281,6 +281,7 @@ class MisskeyImageState extends ConsumerState<MisskeyImage> {
return Container();
},
);
return cachedWidget!;
},
)),
),
Expand Down
7 changes: 5 additions & 2 deletions lib/view/common/misskey_notes/network_image.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:miria/providers.dart';

enum ImageType {
avatarIcon,
Expand All @@ -13,7 +15,7 @@ enum ImageType {
other
}

class NetworkImageView extends StatelessWidget {
class NetworkImageView extends ConsumerWidget {
final String url;
final ImageType type;
final ImageLoadingBuilder? loadingBuilder;
Expand All @@ -32,7 +34,7 @@ class NetworkImageView extends StatelessWidget {
});

@override
Widget build(BuildContext context) {
Widget build(BuildContext context, WidgetRef ref) {
if (url.endsWith(".svg")) {
return SvgPicture.network(
url,
Expand All @@ -55,6 +57,7 @@ class NetworkImageView extends StatelessWidget {
errorWidget: (context, url, error) =>
errorBuilder?.call(context, error, StackTrace.current) ??
Container(),
cacheManager: ref.read(cacheManagerProvider),
height: height,
placeholder: (context, url) =>
loadingBuilder?.call(context, Container(), null) ??
Expand Down
15 changes: 14 additions & 1 deletion test/test_util/mock.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,14 @@ import 'package:miria/repository/account_repository.dart';
import 'package:miria/repository/account_settings_repository.dart';
import 'package:miria/repository/emoji_repository.dart';
import 'package:miria/repository/general_settings_repository.dart';
import 'package:miria/repository/note_repository.dart';
import 'package:miria/repository/tab_settings_repository.dart';
import 'package:misskey_dart/misskey_dart.dart';
import 'package:mockito/annotations.dart';
import 'package:mockito/mockito.dart';
import 'package:plugin_platform_interface/plugin_platform_interface.dart';
import 'package:flutter_cache_manager/flutter_cache_manager.dart';
import 'package:url_launcher_platform_interface/url_launcher_platform_interface.dart';

@GenerateNiceMocks([
// レポジトリ
Expand All @@ -19,6 +22,7 @@ import 'package:plugin_platform_interface/plugin_platform_interface.dart';
MockSpec<EmojiRepository>(),
MockSpec<GeneralSettingsRepository>(),
MockSpec<AccountRepository>(),
MockSpec<NoteRepository>(),

// API
MockSpec<Misskey>(),
Expand All @@ -36,6 +40,7 @@ import 'package:plugin_platform_interface/plugin_platform_interface.dart';
MockSpec<MisskeyI>(),
MockSpec<MisskeyNotes>(),
MockSpec<MisskeyNotesFavorites>(),
MockSpec<MisskeyNotesReactions>(),
MockSpec<MisskeyNotesPolls>(),
MockSpec<MisskeyRenoteMute>(),
MockSpec<MisskeyRoles>(),
Expand All @@ -46,11 +51,19 @@ import 'package:plugin_platform_interface/plugin_platform_interface.dart';
MockSpec<HttpClient>(),
MockSpec<SocketController>(),
MockSpec<StreamingService>(),
MockSpec<FakeFilePickerPlatform>(as: #MockFilePickerPlatform)
MockSpec<FakeFilePickerPlatform>(as: #MockFilePickerPlatform),
MockSpec<$MockBaseCacheManager>(as: #MockBaseCacheManager),
MockSpec<$MockUrlLauncherPlatform>(as: #MockUrlLauncherPlatform),
])
// ignore: unused_import
import 'mock.mocks.dart';

class $MockBaseCacheManager extends Mock implements BaseCacheManager {}

class FakeFilePickerPlatform extends Mock
with MockPlatformInterfaceMixin
implements FilePicker {}

class $MockUrlLauncherPlatform extends Mock
with MockPlatformInterfaceMixin
implements UrlLauncherPlatform {}
Loading

0 comments on commit e88295f

Please sign in to comment.