From e7050fa92d09ce587e20c4e69feda4d44b25d3c5 Mon Sep 17 00:00:00 2001 From: Lukasz Gawron Date: Thu, 31 Jul 2025 23:54:49 +0200 Subject: [PATCH 1/3] gh workflow refresh - update actions versions - use flutter cache - specify flutter stable channel --- .github/workflows/dart.yml | 57 +++++++++++++++++++++++++++++--------- 1 file changed, 44 insertions(+), 13 deletions(-) diff --git a/.github/workflows/dart.yml b/.github/workflows/dart.yml index a5ab339..1510e24 100644 --- a/.github/workflows/dart.yml +++ b/.github/workflows/dart.yml @@ -6,25 +6,56 @@ on: branches: [master] jobs: - test: + format: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: subosito/flutter-action@v2 + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Flutter + uses: subosito/flutter-action@v2 + with: + channel: stable + cache: true + + - name: Install dependencies + run: flutter pub get + + - name: Check code formatting + run: dart format --set-exit-if-changed . + + analyze: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Flutter + uses: subosito/flutter-action@v2 + with: + channel: stable + cache: true + - name: Install dependencies run: flutter pub get + - name: Run linter - run: flutter analyze - - name: Run tests - run: flutter test + run: dart analyze . - format: + test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: subosito/flutter-action@v2 - - run: dart format . - - uses: stefanzweifel/git-auto-commit-action@v4 + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Flutter + uses: subosito/flutter-action@v2 with: - commit_message: Update formatted files - file_pattern: "*.dart" + channel: stable + cache: true + + - name: Install dependencies + run: flutter pub get + + - name: Run tests + run: flutter test From dba404d792a97320bf789d87e4816c1234efb32d Mon Sep 17 00:00:00 2001 From: Lukasz Gawron Date: Thu, 31 Jul 2025 23:59:28 +0200 Subject: [PATCH 2/3] make analyze infos fatal --- .github/workflows/dart.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dart.yml b/.github/workflows/dart.yml index 1510e24..6a462b2 100644 --- a/.github/workflows/dart.yml +++ b/.github/workflows/dart.yml @@ -40,7 +40,7 @@ jobs: run: flutter pub get - name: Run linter - run: dart analyze . + run: dart analyze --fatal-infos . test: runs-on: ubuntu-latest From b48d8a304b03a3836a7ccea9e10375690eeebac1 Mon Sep 17 00:00:00 2001 From: Lukasz Gawron Date: Fri, 1 Aug 2025 00:02:15 +0200 Subject: [PATCH 3/3] fix format and lint issues --- example/lib/main.dart | 4 +-- lib/get_it.dart | 4 ++- test/async_test.dart | 7 ++-- test/get_it_test.dart | 32 +++++++++++-------- test/scope_test.dart | 74 +++++++++++++++++++++++++++---------------- 5 files changed, 74 insertions(+), 47 deletions(-) diff --git a/example/lib/main.dart b/example/lib/main.dart index fb8d3c9..25eacba 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -46,8 +46,8 @@ class _MyHomePageState extends State { // Access the instance of the registered AppModel // As we don't know for sure if AppModel is already ready we use isReady getIt.isReady().then( - (_) => getIt().addListener(update), - ); + (_) => getIt().addListener(update), + ); // Alternative // getIt.getAsync().addListener(update); diff --git a/lib/get_it.dart b/lib/get_it.dart index 75f4ddc..cbfe5f1 100644 --- a/lib/get_it.dart +++ b/lib/get_it.dart @@ -55,7 +55,9 @@ typedef ScopeDisposeFunc = FutureOr Function(); /// For async Factories that expect up to two parameters if you need only one use `void` for the one /// you don't use typedef FactoryFuncParamAsync = Future Function( - P1 param1, P2 param2); + P1 param1, + P2 param2, +); /// Data structure used to identify a dependency by type and instanceName class InitDependency implements Type { diff --git a/test/async_test.dart b/test/async_test.dart index 00c5742..000402a 100644 --- a/test/async_test.dart +++ b/test/async_test.dart @@ -176,8 +176,8 @@ void main() { expect(constructorCounter, 0); - final Iterable instances = await getIt - .getAllAsync(); + final Iterable instances = + await getIt.getAllAsync(); expect(instances.length, 2); expect(instances.first is TestClass, true); @@ -188,7 +188,8 @@ void main() { getIt.allowRegisterMultipleImplementationsOfoneType = false; }); - test('signalReady will throw if any Singletons that has signalsReady==true ' + test( + 'signalReady will throw if any Singletons that has signalsReady==true ' 'have not signaled completion', () async { final getIt = GetIt.instance; diff --git a/test/get_it_test.dart b/test/get_it_test.dart index 232302f..12ef1de 100644 --- a/test/get_it_test.dart +++ b/test/get_it_test.dart @@ -1173,12 +1173,15 @@ void main() { expect(instance1 is TestClass, true); - expect(() { - getIt.changeTypeInstanceName( - instanceName: 'instanceName', - newInstanceName: 'instanceNameExisting', - ); - }, throwsStateError); + expect( + () { + getIt.changeTypeInstanceName( + instanceName: 'instanceName', + newInstanceName: 'instanceNameExisting', + ); + }, + throwsStateError, + ); }); test('change registration name of instance', () async { @@ -1242,13 +1245,16 @@ void main() { getIt.registerSingleton(TestClass(), instanceName: 'instanceName'); - expect(() { - // ignore: unused_local_variable - final TestClass2 instance1 = getIt.get( - type: TestClass, - instanceName: 'instanceName', - ); - }, throwsA(isA())); + expect( + () { + // ignore: unused_local_variable + final TestClass2 instance1 = getIt.get( + type: TestClass, + instanceName: 'instanceName', + ); + }, + throwsA(isA()), + ); }, ); diff --git a/test/scope_test.dart b/test/scope_test.dart index 76e7a0c..9a92a6e 100644 --- a/test/scope_test.dart +++ b/test/scope_test.dart @@ -113,10 +113,13 @@ void main() { Object? shadowingObject; getIt.registerSingleton( - TestClassShadowChangHandler((shadowState, shadow) { - isShadowed = shadowState; - shadowingObject = shadow; - }, 'Basescope'), + TestClassShadowChangHandler( + (shadowState, shadow) { + isShadowed = shadowState; + shadowingObject = shadow; + }, + 'Basescope', + ), ); getIt.pushNewScope(); @@ -146,10 +149,13 @@ void main() { Object? shadowingObject; getIt.registerSingleton( - TestClassShadowChangHandler((shadowState, shadow) { - isShadowed = shadowState; - shadowingObject = shadow; - }, 'Basescope'), + TestClassShadowChangHandler( + (shadowState, shadow) { + isShadowed = shadowState; + shadowingObject = shadow; + }, + 'Basescope', + ), ); getIt.pushNewScope(); @@ -183,10 +189,13 @@ void main() { getIt.onScopeChanged = (pushed) => scopeChanged++; getIt.registerLazySingleton( - () => TestClassShadowChangHandler((shadowState, shadow) { - isShadowed = shadowState; - shadowingObject = shadow; - }, 'Basescope'), + () => TestClassShadowChangHandler( + (shadowState, shadow) { + isShadowed = shadowState; + shadowingObject = shadow; + }, + 'Basescope', + ), ); getIt.pushNewScope(); @@ -238,10 +247,13 @@ void main() { Object? shadowingObject; getIt.registerSingleton( - TestClassShadowChangHandler((shadowState, shadow) { - isShadowed = shadowState; - shadowingObject = shadow; - }, 'Basescope'), + TestClassShadowChangHandler( + (shadowState, shadow) { + isShadowed = shadowState; + shadowingObject = shadow; + }, + 'Basescope', + ), ); getIt.pushNewScope(); @@ -290,23 +302,29 @@ void main() { return newInstance; }); getIt.registerSingleton( - TestClassShadowChangHandler((shadowState, shadow) { - isShadowed = shadowState; - shadowingObject = shadow; - }, '2, Scope'), + TestClassShadowChangHandler( + (shadowState, shadow) { + isShadowed = shadowState; + shadowingObject = shadow; + }, + '2, Scope', + ), ); getIt.pushNewScope(); Object? shadowingInstance; - getIt.registerSingletonWithDependencies(() { - final newInstance = TestClassShadowChangHandler( - (shadowState, shadow) {}, - '2, Scope', - ); - shadowingInstance = newInstance; - return newInstance; - }, dependsOn: [TestClass]); + getIt.registerSingletonWithDependencies( + () { + final newInstance = TestClassShadowChangHandler( + (shadowState, shadow) {}, + '2, Scope', + ); + shadowingInstance = newInstance; + return newInstance; + }, + dependsOn: [TestClass], + ); /// The instance is not created yet because the async init function hasn't completed expect(isShadowed, false);