From 6e15f596beaf09a84db702e30c3574319275cd37 Mon Sep 17 00:00:00 2001 From: Felix Angelov Date: Wed, 23 Oct 2024 15:35:56 -0500 Subject: [PATCH] chore(shorebird_cli): remove redundant api and storage access validators (#2574) --- packages/shorebird_cli/lib/src/doctor.dart | 2 - .../shorebird_api_access_validator.dart | 25 ------ .../validators/storage_access_validator.dart | 28 ------- .../lib/src/validators/validators.dart | 2 - .../shorebird_api_access_validator_test.dart | 83 ------------------- .../storage_access_validator_test.dart | 83 ------------------- 6 files changed, 223 deletions(-) delete mode 100644 packages/shorebird_cli/lib/src/validators/shorebird_api_access_validator.dart delete mode 100644 packages/shorebird_cli/lib/src/validators/storage_access_validator.dart delete mode 100644 packages/shorebird_cli/test/src/validators/shorebird_api_access_validator_test.dart delete mode 100644 packages/shorebird_cli/test/src/validators/storage_access_validator_test.dart diff --git a/packages/shorebird_cli/lib/src/doctor.dart b/packages/shorebird_cli/lib/src/doctor.dart index ba4c91e2..cd587bbc 100644 --- a/packages/shorebird_cli/lib/src/doctor.dart +++ b/packages/shorebird_cli/lib/src/doctor.dart @@ -29,8 +29,6 @@ class Doctor { ShorebirdVersionValidator(), ShorebirdFlutterValidator(), AndroidInternetPermissionValidator(), - ShorebirdApiAccessValidator(), - StorageAccessValidator(), ShorebirdYamlAssetValidator(), ]; diff --git a/packages/shorebird_cli/lib/src/validators/shorebird_api_access_validator.dart b/packages/shorebird_cli/lib/src/validators/shorebird_api_access_validator.dart deleted file mode 100644 index 3494b363..00000000 --- a/packages/shorebird_cli/lib/src/validators/shorebird_api_access_validator.dart +++ /dev/null @@ -1,25 +0,0 @@ -import 'dart:io'; - -import 'package:shorebird_cli/src/http_client/http_client.dart'; -import 'package:shorebird_cli/src/validators/validators.dart'; - -/// Verifies that the user has access to api.shorebird.dev. -class ShorebirdApiAccessValidator extends Validator { - @override - String get description => 'Has access to api.shorebird.dev'; - - @override - Future> validate() async { - final uri = Uri.parse('https://api.shorebird.dev'); - final result = await httpClient.get(uri); - if (result.statusCode != HttpStatus.ok) { - return [ - const ValidationIssue( - severity: ValidationIssueSeverity.error, - message: 'Unable to access api.shorebird.dev', - ), - ]; - } - return []; - } -} diff --git a/packages/shorebird_cli/lib/src/validators/storage_access_validator.dart b/packages/shorebird_cli/lib/src/validators/storage_access_validator.dart deleted file mode 100644 index fd5d00d6..00000000 --- a/packages/shorebird_cli/lib/src/validators/storage_access_validator.dart +++ /dev/null @@ -1,28 +0,0 @@ -// cspell:words googleapis -import 'dart:io'; - -import 'package:shorebird_cli/src/http_client/http_client.dart'; -import 'package:shorebird_cli/src/validators/validators.dart'; - -/// Verifies that the user has access to storage.googleapis.com. -class StorageAccessValidator extends Validator { - @override - String get description => 'Has access to storage.googleapis.com'; - - @override - Future> validate() async { - final testFileUrl = Uri.parse( - 'https://storage.googleapis.com/shorebird_doctor/hello', - ); - final result = await httpClient.get(testFileUrl); - if (result.statusCode != HttpStatus.ok || result.body != 'hello') { - return [ - const ValidationIssue( - severity: ValidationIssueSeverity.error, - message: 'Unable to access storage.googleapis.com', - ), - ]; - } - return []; - } -} diff --git a/packages/shorebird_cli/lib/src/validators/validators.dart b/packages/shorebird_cli/lib/src/validators/validators.dart index ecc91e98..41b18c0a 100644 --- a/packages/shorebird_cli/lib/src/validators/validators.dart +++ b/packages/shorebird_cli/lib/src/validators/validators.dart @@ -6,11 +6,9 @@ import 'package:shorebird_cli/src/shorebird_process.dart'; export 'android_internet_permission_validator.dart'; export 'flavor_validator.dart'; -export 'shorebird_api_access_validator.dart'; export 'shorebird_flutter_validator.dart'; export 'shorebird_version_validator.dart'; export 'shorebird_yaml_asset_validator.dart'; -export 'storage_access_validator.dart'; /// Severity level of a [ValidationIssue]. enum ValidationIssueSeverity { diff --git a/packages/shorebird_cli/test/src/validators/shorebird_api_access_validator_test.dart b/packages/shorebird_cli/test/src/validators/shorebird_api_access_validator_test.dart deleted file mode 100644 index 92688366..00000000 --- a/packages/shorebird_cli/test/src/validators/shorebird_api_access_validator_test.dart +++ /dev/null @@ -1,83 +0,0 @@ -import 'dart:io'; - -import 'package:http/http.dart' as http; -import 'package:mocktail/mocktail.dart'; -import 'package:scoped_deps/scoped_deps.dart'; -import 'package:shorebird_cli/src/http_client/http_client.dart'; -import 'package:shorebird_cli/src/validators/validators.dart'; -import 'package:test/test.dart'; - -import '../mocks.dart'; - -void main() { - group(ShorebirdApiAccessValidator, () { - late http.Client httpClient; - late ShorebirdApiAccessValidator validator; - - R runWithOverrides(R Function() body) { - return runScoped( - () => body(), - values: { - httpClientRef.overrideWith(() => httpClient), - }, - ); - } - - setUpAll(() { - registerFallbackValue(Uri()); - }); - - setUp(() { - httpClient = MockHttpClient(); - validator = ShorebirdApiAccessValidator(); - - when(() => httpClient.get(any())).thenAnswer( - (_) async => http.Response('', HttpStatus.ok), - ); - }); - - group('description', () { - test('has a non-empty description', () { - expect(validator.description, isNotEmpty); - }); - }); - - group('validate', () { - group('when url is accessible', () { - setUp(() { - when(() => httpClient.get(any())).thenAnswer( - (_) async => http.Response('', HttpStatus.ok), - ); - }); - - test('returns empty list of validation issues', () async { - final results = await runWithOverrides(validator.validate); - expect(results, isEmpty); - }); - }); - - group('when url is inaccessible', () { - setUp(() { - when(() => httpClient.get(any())).thenAnswer( - (_) async => http.Response('Not Found', HttpStatus.notFound), - ); - }); - - test('returns validation error', () async { - final results = await runWithOverrides(validator.validate); - expect( - results, - equals( - [ - const ValidationIssue( - severity: ValidationIssueSeverity.error, - message: 'Unable to access api.shorebird.dev', - ), - ], - ), - ); - }); - }); - }); - }); -} diff --git a/packages/shorebird_cli/test/src/validators/storage_access_validator_test.dart b/packages/shorebird_cli/test/src/validators/storage_access_validator_test.dart deleted file mode 100644 index a190d31c..00000000 --- a/packages/shorebird_cli/test/src/validators/storage_access_validator_test.dart +++ /dev/null @@ -1,83 +0,0 @@ -import 'dart:io'; - -import 'package:http/http.dart' as http; -import 'package:mocktail/mocktail.dart'; -import 'package:scoped_deps/scoped_deps.dart'; -import 'package:shorebird_cli/src/http_client/http_client.dart'; -import 'package:shorebird_cli/src/validators/validators.dart'; -import 'package:test/test.dart'; - -import '../mocks.dart'; - -void main() { - group(StorageAccessValidator, () { - late http.Client httpClient; - late StorageAccessValidator validator; - - R runWithOverrides(R Function() body) { - return runScoped( - () => body(), - values: { - httpClientRef.overrideWith(() => httpClient), - }, - ); - } - - setUpAll(() { - registerFallbackValue(Uri.parse('http://example.com')); - }); - - setUp(() { - httpClient = MockHttpClient(); - validator = StorageAccessValidator(); - - when(() => httpClient.get(any())).thenAnswer( - (_) async => http.Response('', HttpStatus.ok), - ); - }); - - group('description', () { - test('has a non-empty description', () { - expect(validator.description, isNotEmpty); - }); - }); - - group('validate', () { - group('when storage url is accessible', () { - setUp(() { - when(() => httpClient.get(any())).thenAnswer( - (_) async => http.Response('hello', HttpStatus.ok), - ); - }); - - test('returns empty list of validation issues', () async { - final results = await runWithOverrides(validator.validate); - expect(results, isEmpty); - }); - }); - - group('when storage url is inaccessible', () { - setUp(() { - when(() => httpClient.get(any())).thenAnswer( - (_) async => http.Response('Not Found', HttpStatus.notFound), - ); - }); - - test('returns validation error', () async { - final results = await runWithOverrides(validator.validate); - expect( - results, - equals( - [ - const ValidationIssue( - severity: ValidationIssueSeverity.error, - message: 'Unable to access storage.googleapis.com', - ), - ], - ), - ); - }); - }); - }); - }); -}