Skip to content

Commit

Permalink
⬆️ Dart 3
Browse files Browse the repository at this point in the history
  • Loading branch information
lsaudon committed Jun 2, 2023
1 parent 9fa4cf6 commit 0da7798
Show file tree
Hide file tree
Showing 5 changed files with 52 additions and 39 deletions.
44 changes: 34 additions & 10 deletions .github/workflows/pubspec_version_cli.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,36 @@ on:
- "pubspec.yaml"

jobs:
semantic-pull-request:
uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/semantic_pull_request.yml@v1

build:
uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/dart_package.yml@v1
with:
min_coverage: 90
runs-on: ubuntu-latest
steps:
- name: 📚 Git Checkout
uses: actions/checkout@v3

- name: 🐦 Setup Flutter
uses: subosito/flutter-action@v2
with:
channel: stable
cache: true

- name: 📦 Install Dependencies
run: flutter pub get

- name: ✨ Check Formatting
run: dart format --set-exit-if-changed .

- name: 🕵️ Analyze
run: dart analyze --fatal-infos --fatal-warnings lib test bin

- name: 🧪 Run Tests
run: |
dart pub global activate coverage 1.2.0
dart test --coverage=coverage && dart pub global run coverage:format_coverage --lcov --in=coverage --out=coverage/lcov.info
- name: 📊 Check Code Coverage
uses: VeryGoodOpenSource/very_good_coverage@v2
with:
min_coverage: 90

pana:
uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/pana.yml@v1
Expand All @@ -38,14 +61,15 @@ jobs:
- name: 📚 Git Checkout
uses: actions/checkout@v3

- name: 🎯 Setup Dart
uses: dart-lang/setup-dart@v1
- name: 🐦 Setup Flutter
uses: subosito/flutter-action@v2
with:
sdk: "stable"
channel: stable
cache: true

- name: 📦 Install Dependencies
run: |
dart pub get
flutter pub get
- name: 🔎 Verify version
run: dart run test --run-skipped -t version-verify
12 changes: 7 additions & 5 deletions analysis_options.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -71,37 +71,39 @@ linter:
- dangling_library_doc_comments
- depend_on_referenced_packages
- deprecated_consistency
- deprecated_member_use_from_same_package
- diagnostic_describe_all_properties
- directives_ordering
# - discarded_futures
- do_not_use_environment
- empty_catches
- empty_constructor_bodies
- empty_statements
- enable_null_safety
- eol_at_end_of_file
- exhaustive_cases
- file_names
- flutter_style_todos
- hash_and_equals
- implementation_imports
- implicit_call_tearoffs
- iterable_contains_unrelated_type
- implicit_reopen
- invalid_case_patterns
- join_return_with_assignment
- leading_newlines_in_multiline_strings
- library_annotations
- library_names
- library_prefixes
- library_private_types_in_public_api
- lines_longer_than_80_chars
- list_remove_unrelated_type
- literal_only_boolean_expressions
- matching_super_parameters
- missing_whitespace_between_adjacent_strings
- no_adjacent_strings_in_list
- no_default_cases
- no_duplicate_case_values
- no_leading_underscores_for_library_prefixes
- no_leading_underscores_for_local_identifiers
- no_literal_bool_comparisons
- no_logic_in_create_state
- no_runtimeType_toString
- non_constant_identifier_names
Expand All @@ -128,7 +130,6 @@ linter:
- prefer_constructors_over_static_methods
- prefer_contains
# - prefer_double_quotes
- prefer_equal_for_default_values
- prefer_expression_function_bodies
- prefer_final_fields
- prefer_final_in_for_each
Expand Down Expand Up @@ -173,10 +174,11 @@ linter:
- tighten_type_of_initializing_formals
- type_annotate_public_apis
- type_init_formals
- type_literal_in_constant_pattern
- unawaited_futures
- unnecessary_await_in_return
- unnecessary_brace_in_string_interps
# - unnecessary_breaks
- unnecessary_breaks
- unnecessary_const
- unnecessary_constructor_name
# - unnecessary_final
Expand Down
14 changes: 7 additions & 7 deletions pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,23 @@ repository: https://github.com/lsaudon/pubspec_version_cli
issue_tracker: https://github.com/lsaudon/pubspec_version_cli/issues

environment:
sdk: ">=2.19.0 <3.0.0"
sdk: ">=3.0.0 <4.0.0"

dependencies:
args: ^2.4.0
args: ^2.4.1
cli_completion: ^0.3.0
file: ^6.1.4
mason_logger: ^0.2.5
file: ^6.1.4 # pub_updater use 6.1.4
mason_logger: ^0.2.6
path: ^1.8.3
pub_updater: ^0.3.0
yaml: ^3.1.1
yaml: ^3.1.2

dev_dependencies:
build_runner: ^2.3.3 # 2.4.0 need dart sdk > 3.0.0
build_runner: ^2.4.4
build_verify: ^3.1.0
build_version: ^2.1.1
mocktail: ^0.3.0
test: ^1.24.1
test: ^1.24.3

executables:
pubspec_version:
8 changes: 1 addition & 7 deletions test/src/command_runner_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@ import 'package:test/test.dart';

class _MockLogger extends Mock implements Logger {}

class _MockProcessResult extends Mock implements ProcessResult {}

class _MockProgress extends Mock implements Progress {}

class _MockPubUpdater extends Mock implements PubUpdater {}
Expand All @@ -27,7 +25,6 @@ void main() {
group('PubspecVersionCliCommandRunner', () {
late PubUpdater pubUpdater;
late Logger logger;
late ProcessResult processResult;
late PubspecVersionCliCommandRunner commandRunner;

setUp(() {
Expand All @@ -39,9 +36,6 @@ void main() {

logger = _MockLogger();

processResult = _MockProcessResult();
when(() => processResult.exitCode).thenReturn(ExitCode.success.code);

commandRunner = PubspecVersionCliCommandRunner(
logger: logger,
pubUpdater: pubUpdater,
Expand Down Expand Up @@ -81,7 +75,7 @@ void main() {
packageName: packageName,
versionConstraint: any(named: 'versionConstraint'),
),
).thenAnswer((final _) async => processResult);
).thenAnswer((final _) async => ProcessResult(0, 0, 0, 0));
when(
() => pubUpdater.isUpToDate(
packageName: any(named: 'packageName'),
Expand Down
13 changes: 3 additions & 10 deletions test/src/commands/update_command_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@ import 'package:test/test.dart';

class _MockLogger extends Mock implements Logger {}

class _MockProcessResult extends Mock implements ProcessResult {}

class _MockProgress extends Mock implements Progress {}

class _MockPubUpdater extends Mock implements PubUpdater {}
Expand All @@ -22,15 +20,13 @@ void main() {
group('update', () {
late PubUpdater pubUpdater;
late Logger logger;
late ProcessResult processResult;
late PubspecVersionCliCommandRunner commandRunner;

setUp(() {
final progress = _MockProgress();
final progressLogs = <String>[];
pubUpdater = _MockPubUpdater();
logger = _MockLogger();
processResult = _MockProcessResult();
commandRunner = PubspecVersionCliCommandRunner(
logger: logger,
pubUpdater: pubUpdater,
Expand All @@ -44,7 +40,7 @@ void main() {
packageName: packageName,
versionConstraint: latestVersion,
),
).thenAnswer((final _) async => processResult);
).thenAnswer((final _) async => ProcessResult(0, 0, 0, 0));
when(
() => pubUpdater.isUpToDate(
packageName: any(named: 'packageName'),
Expand All @@ -58,7 +54,6 @@ void main() {
}
});
when(() => logger.progress(any())).thenReturn(progress);
when(() => processResult.exitCode).thenReturn(ExitCode.success.code);
});

test('can be instantiated without a pub updater', () {
Expand Down Expand Up @@ -113,8 +108,6 @@ void main() {
test('handles pub update process errors', () async {
const error = 'Oh no! Installing this is not possible right now!';

when(() => processResult.exitCode).thenReturn(1);
when<dynamic>(() => processResult.stderr).thenReturn(error);
when(
() => pubUpdater.getLatestVersion(any()),
).thenAnswer((final _) async => latestVersion);
Expand All @@ -124,7 +117,7 @@ void main() {
packageName: any(named: 'packageName'),
versionConstraint: any(named: 'versionConstraint'),
),
).thenAnswer((final _) async => processResult);
).thenAnswer((final _) async => ProcessResult(0, 1, 0, error));

final result = await commandRunner.run(['update']);

Expand All @@ -150,7 +143,7 @@ void main() {
packageName: any(named: 'packageName'),
versionConstraint: any(named: 'versionConstraint'),
),
).thenAnswer((final _) async => processResult);
).thenAnswer((final _) async => ProcessResult(0, 0, 0, 0));
when(() => logger.progress(any())).thenReturn(_MockProgress());
final result = await commandRunner.run(['update']);
expect(result, equals(ExitCode.success.code));
Expand Down

0 comments on commit 0da7798

Please sign in to comment.