v2.0.5: Add typed service lookup entrypoint and tests for Arcane.service

Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
This commit is contained in:
2026-06-03 19:37:14 +02:00
parent fe42eac0dc
commit cbb1a78473
7 changed files with 83 additions and 2 deletions
+46
View File
@@ -325,6 +325,52 @@ void main() {
),
);
});
testWidgets("Arcane.service.ofType<T> helper works", (tester) async {
await tester.pumpWidget(
ArcaneApp(
services: testServices,
child: Builder(
builder: (context) {
final service = Arcane.service.ofType<MockArcaneService>(context);
expect(service, isNotNull);
expect(service, isA<MockArcaneService>());
final missing = Arcane.service.ofType<UnregisteredService>(
context,
);
expect(missing, isNull);
return const SizedBox();
},
),
),
);
});
testWidgets("Arcane.service.requiredOfType<T> helper works",
(tester) async {
await tester.pumpWidget(
ArcaneApp(
services: testServices,
child: Builder(
builder: (context) {
final service = Arcane.service.requiredOfType<MockArcaneService>(
context,
);
expect(service, isA<MockArcaneService>());
expect(
() =>
Arcane.service.requiredOfType<UnregisteredService>(context),
throwsA(isA<AssertionError>()),
);
return const SizedBox();
},
),
),
);
});
});
}