Skip to content

Commit

Permalink
♻️ refactor: READMEコンテンツのI/Fを変更
Browse files Browse the repository at this point in the history
Issue #145
  • Loading branch information
susatthi committed May 25, 2022
1 parent d2e004c commit 44313b1
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 20 deletions.
4 changes: 1 addition & 3 deletions lib/domain/repositories/repo_repository.dart
Expand Up @@ -31,9 +31,7 @@ abstract class RepoRepository {

/// READMEコンテンツを取得する
Future<String> getReadme({
required String ownerName,
required String repoName,
required String defaultBranch,
required Repo repo,
});
}

Expand Down
6 changes: 2 additions & 4 deletions lib/infrastructure/github/repo_repository.dart
Expand Up @@ -103,9 +103,7 @@ class GitHubRepoRepository implements RepoRepository {

@override
Future<String> getReadme({
required String ownerName,
required String repoName,
required String defaultBranch,
required Repo repo,
}) async {
// READMEファイル名のパターン(優先度順)
const fileNames = <String>[
Expand All @@ -117,7 +115,7 @@ class GitHubRepoRepository implements RepoRepository {

for (final fileName in fileNames) {
final uri = Uri.parse(
'https://raw.githubusercontent.com/$ownerName/$repoName/$defaultBranch/$fileName',
'https://raw.githubusercontent.com/${repo.ownerName}/${repo.repoName}/${repo.defaultBranch}/$fileName',
);
try {
return await _client.getRaw(uri: uri);
Expand Down
6 changes: 2 additions & 4 deletions lib/presentation/repo/components/readme_content.dart
Expand Up @@ -35,16 +35,14 @@ class RepoReadmeContentNotifier extends StateNotifier<AsyncValue<String>> {

final RepoRepository _repoRepository;

/// リポジトリ
/// リポジトリEntity
final Repo repo;

Future<void> _get() async {
state = const AsyncValue.loading();
state = await AsyncValue.guard(() async {
return _repoRepository.getReadme(
ownerName: repo.ownerName,
repoName: repo.repoName,
defaultBranch: repo.defaultBranch,
repo: repo,
);
});
}
Expand Down
28 changes: 19 additions & 9 deletions test/infrastructure/github/repo_repository_test.dart
Expand Up @@ -5,12 +5,20 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:github_search/domain/repositories/repo_repository.dart';
import 'package:github_search/infrastructure/github/exception.dart';
import 'package:github_search/infrastructure/github/json_object/repo/repo.dart';
import 'package:github_search/infrastructure/github/repo_repository.dart';

import '../../test_utils/locale.dart';
import '../../test_utils/mocks.dart';
import '../../test_utils/utils.dart';

void main() {
final repo = GitHubRepoRepository.repoBuilder(
RepoJsonObject.fromJson(
TestAssets.readJsonMap('github/get_repo_flutter_flutter.json')!,
),
);

late GitHubRepoRepository repository;
setUp(() {
repository = mockProviderContainer().read(githubRepoRepositoryProvider);
Expand Down Expand Up @@ -39,9 +47,7 @@ void main() {
group('GitHubRepoRepository.getReadme()', () {
test('取得できるはず', () async {
final content = await repository.getReadme(
ownerName: 'flutter',
repoName: 'flutter',
defaultBranch: 'master',
repo: repo,
);
expect(content, isNotNull);
});
Expand All @@ -50,9 +56,11 @@ void main() {
String? errorCode;
try {
content = await repository.getReadme(
ownerName: 'unknown',
repoName: 'unknown',
defaultBranch: 'unknown',
repo: repo.copyWith(
ownerName: 'unknown',
repoName: 'unknown',
defaultBranch: 'unknown',
),
);
} on GitHubException catch (e) {
errorCode = e.code;
Expand All @@ -65,9 +73,11 @@ void main() {
String? errorCode;
try {
content = await repository.getReadme(
ownerName: 'unknown',
repoName: 'unknown',
defaultBranch: 'socketException',
repo: repo.copyWith(
ownerName: 'unknown',
repoName: 'unknown',
defaultBranch: 'socketException',
),
);
} on GitHubException catch (e) {
errorCode = e.code;
Expand Down

0 comments on commit 44313b1

Please sign in to comment.