Skip to content

Commit 5f42f19

Browse files
committed
Add regression test for generic classes with generic parameters
1 parent 7022977 commit 5f42f19

File tree

6 files changed

+59
-34
lines changed

6 files changed

+59
-34
lines changed

packages/riverpod_generator/test/integration/stream.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ Stream<List<ItemT>> generic<ItemT extends num>(Ref ref) async* {
1010
@riverpod
1111
class GenericClass<StateT extends num> extends _$GenericClass<StateT> {
1212
@override
13-
Stream<List<StateT>> build() async* {
14-
yield <StateT>[];
13+
Stream<List<StateT>> build(StateT param) async* {
14+
yield <StateT>[param];
1515
}
1616
}
1717

packages/riverpod_generator/test/integration/stream.g.dart

Lines changed: 19 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/riverpod_generator/test/integration/sync.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ List<ItemT> complexGeneric<ItemT extends num, OtherT extends String?>(
2121
class GenericClass<ValueT extends num> extends _$GenericClass<ValueT>
2222
with MyMixin<List<ValueT>, List<ValueT>> {
2323
@override
24-
List<ValueT> build() {
25-
return <ValueT>[];
24+
List<ValueT> build(ValueT param) {
25+
return <ValueT>[param];
2626
}
2727
}
2828

packages/riverpod_generator/test/integration/sync.g.dart

Lines changed: 19 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/riverpod_generator/test/stream_test.dart

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,17 @@ void main() {
2121
},
2222
);
2323

24+
test('Using generic class+family', () async {
25+
final container = ProviderContainer.test();
26+
27+
final sub = container.listen(
28+
genericClassProvider<int>(42).future,
29+
(previous, next) {},
30+
);
31+
32+
expect(await sub.read(), <int>[42]);
33+
});
34+
2435
test('Generates .name for providers', () {
2536
expect(publicProvider.name, 'publicProvider');
2637
expect(privateProvider.name, '_privateProvider');

packages/riverpod_generator/test/sync_test.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,12 @@ void main() {
4545
3.14,
4646
]);
4747
});
48+
49+
test('Using class+family', () {
50+
final container = ProviderContainer.test();
51+
52+
expect(container.read(genericClassProvider<int>(42)), <int>[42]);
53+
});
4854
});
4955

5056
test('Supports Raw', () async {

0 commit comments

Comments
 (0)