Skip to content

Commit 0635cf1

Browse files
authored
fix: test fixes for offline builders after nullable deprecation (#522)
1 parent 3ca5375 commit 0635cf1

20 files changed

+146
-83
lines changed

packages/brick_json_generators/CHANGELOG.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
- Revert `.getDisplayString()` change due to Flutter 3.22 being restricted to analyzer <6.4.1. `meta` is pinned to `1.12` in this version of Flutter, and `analyzer >=6.5.0`, where the change was made, requires `meta >= 1.15`. This change will eventually be re-reverted.
77
- Upgrade `brick_core` to `1.4.0`
88
- Update analysis to modern lints
9-
- Remove redundant nullability checks for siblings and iterable siblings
9+
- Remove redundant nullability checks for enums, siblings and iterable siblings
1010

1111
## 3.1.1
1212

packages/brick_json_generators/lib/json_deserialize.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ mixin JsonDeserialize<TModel extends Model, Annotation extends FieldSerializable
123123
} else if (checker.isEnum) {
124124
final deserializeFactory = checker.enumDeserializeFactory(providerName);
125125
if (deserializeFactory != null) {
126-
return '${checker.isNullable ? "$fieldValue == null ? null :" : ""} ${SharedChecker.withoutNullability(field.type)}.$deserializeFactory($fieldValue)';
126+
return '${SharedChecker.withoutNullability(field.type)}.$deserializeFactory($fieldValue)';
127127
}
128128

129129
if (fieldAnnotation.enumAsString) {

packages/brick_json_generators/pubspec.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ homepage: https://github.com/GetDutchie/brick/tree/main/packages/brick_json_gene
44
issue_tracker: https://github.com/GetDutchie/brick/issues
55
repository: https://github.com/GetDutchie/brick
66

7-
version: 3.2.0
7+
version: 3.2.0+1
88

99
environment:
1010
sdk: ">=2.18.0 <4.0.0"

packages/brick_offline_first_build/pubspec.yaml

+3-3
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ environment:
1111

1212
dependencies:
1313
analyzer: ">=6.0.0 <7.0.0"
14-
brick_build: ">=3.0.0 <4.0.0"
15-
brick_core: ^1.3.0
16-
brick_json_generators: ">=3.0.0 <4.0.0"
14+
brick_build: ">=3.3.1 <4.0.0"
15+
brick_core: ">=1.4.0 <4.0.0"
16+
brick_json_generators: ">=3.2.0 <4.0.0"
1717
brick_offline_first: ">=3.0.0 <4.0.0"
1818
brick_sqlite: ">=3.0.0 <4.0.0"
1919
brick_sqlite_generators: ">=3.1.0 <4.0.0"

packages/brick_offline_first_build/test/offline_first_generator/test_custom_offline_first_serdes.dart

+8-5
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,16 @@ Future<CustomOfflineFirstSerdes> _$CustomOfflineFirstSerdesFromTest(
77
{required TestProvider provider,
88
OfflineFirstRepository? repository}) async {
99
return CustomOfflineFirstSerdes(
10-
string: Serializable.fromTest(data['string']),
10+
string:
11+
data['string'] == null ? null : Serializable.fromTest(data['string']),
1112
constructorFieldNullabilityMismatch:
1213
data['constructor_field_nullability_mismatch'] as bool?,
13-
strings: data['strings']
14-
?.map((c) => Serializable.fromTest(c as Map<String, dynamic>))
15-
.toList()
16-
.cast<Serializable>());
14+
strings: data['strings'] == null
15+
? null
16+
: data['strings']
17+
?.map((c) => Serializable.fromTest(c as Map<String, dynamic>))
18+
.toList()
19+
.cast<Serializable>());
1720
}
1821
1922
Future<Map<String, dynamic>> _$CustomOfflineFirstSerdesToTest(

packages/brick_offline_first_build/test/offline_first_generator/test_default_value.dart

+4-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,10 @@ const output = r'''
66
Future<DefaultValue> _$DefaultValueFromTest(Map<String, dynamic> data,
77
{required TestProvider provider,
88
OfflineFirstRepository? repository}) async {
9-
return DefaultValue(string: data['string'] as String? ?? "Thomas");
9+
return DefaultValue(
10+
string: data['string'] == null
11+
? null
12+
: data['string'] as String? ?? "Thomas");
1013
}
1114
1215
Future<Map<String, dynamic>> _$DefaultValueToTest(DefaultValue instance,

packages/brick_offline_first_build/test/offline_first_generator/test_futures.dart

+10-6
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ Future<Futures> _$FuturesFromTest(Map<String, dynamic> data,
1111
return Futures(
1212
string: data['string'] as Future<String>,
1313
strings: data['strings'].toList().cast<Future<String>>(),
14-
futureStrings: data['future_strings']?.toList().cast<String>(),
14+
futureStrings: data['future_strings'] == null
15+
? null
16+
: data['future_strings']?.toList().cast<String>(),
1517
assoc: AssocAdapter()
1618
.fromTest(data['assoc'], provider: provider, repository: repository),
1719
assocs: Future.wait<Assoc>(data['assocs']
@@ -20,11 +22,13 @@ Future<Futures> _$FuturesFromTest(Map<String, dynamic> data,
2022
.toList()
2123
.cast<Future<Assoc>>() ??
2224
[]),
23-
futureAssocs: data['future_assocs']
24-
?.map((d) => AssocAdapter()
25-
.fromTest(d, provider: provider, repository: repository))
26-
.toList()
27-
.cast<Future<Assoc>>());
25+
futureAssocs: data['future_assocs'] == null
26+
? null
27+
: data['future_assocs']
28+
?.map((d) => AssocAdapter()
29+
.fromTest(d, provider: provider, repository: repository))
30+
.toList()
31+
.cast<Future<Assoc>>());
2832
}
2933
3034
Future<Map<String, dynamic>> _$FuturesToTest(Futures instance,

packages/brick_offline_first_build/test/offline_first_generator/test_nullable_field.dart

+18-8
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,16 @@ Future<NullableField> _$NullableFieldFromTest(Map<String, dynamic> data,
77
{required TestProvider provider,
88
OfflineFirstRepository? repository}) async {
99
return NullableField(
10-
restFalse: data['rest_false'] as String?,
11-
nullableRestTrue: data['nullable_rest_true'] as String?,
10+
restFalse:
11+
data['rest_false'] == null ? null : data['rest_false'] as String?,
12+
nullableRestTrue: data['nullable_rest_true'] == null
13+
? null
14+
: data['nullable_rest_true'] as String?,
1215
restTrue: data['rest_true'] as String,
13-
sqliteFalse: data['sqlite_false'] as String?,
14-
sqliteTrue: data['sqlite_true'] as String?,
16+
sqliteFalse:
17+
data['sqlite_false'] == null ? null : data['sqlite_false'] as String?,
18+
sqliteTrue:
19+
data['sqlite_true'] == null ? null : data['sqlite_true'] as String?,
1520
constructorFieldNullabilityMismatch:
1621
data['constructor_field_nullability_mismatch'] as String?,
1722
constructorFieldTypeMismatch:
@@ -37,11 +42,16 @@ Future<NullableField> _$NullableFieldFromSqlite(Map<String, dynamic> data,
3742
{required SqliteProvider provider,
3843
OfflineFirstRepository? repository}) async {
3944
return NullableField(
40-
restFalse: data['rest_false'] as String?,
41-
nullableRestTrue: data['nullable_rest_true'] as String?,
45+
restFalse:
46+
data['rest_false'] == null ? null : data['rest_false'] as String?,
47+
nullableRestTrue: data['nullable_rest_true'] == null
48+
? null
49+
: data['nullable_rest_true'] as String?,
4250
restTrue: data['rest_true'] as String,
43-
sqliteFalse: data['sqlite_false'] as String?,
44-
sqliteTrue: data['sqlite_true'] as String?,
51+
sqliteFalse:
52+
data['sqlite_false'] == null ? null : data['sqlite_false'] as String?,
53+
sqliteTrue:
54+
data['sqlite_true'] == null ? null : data['sqlite_true'] as String?,
4555
constructorFieldNullabilityMismatch:
4656
data['constructor_field_nullability_mismatch'] as String,
4757
constructorFieldTypeMismatch:

packages/brick_offline_first_build/test/offline_first_generator/test_offline_first_apply_to_remote_deserialization.dart

+6-4
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,12 @@ Future<OfflineFirstWhere> _$OfflineFirstWhereFromTest(Map<String, dynamic> data,
1010
{required TestProvider provider,
1111
OfflineFirstRepository? repository}) async {
1212
return OfflineFirstWhere(
13-
applied: await repository
14-
?.getAssociation<Assoc>(
15-
Query(where: [Where.exact('id', data['id'])], limit: 1))
16-
.then((r) => r?.isNotEmpty ?? false ? r!.first : null),
13+
applied: data['applied'] == null
14+
? null
15+
: await repository
16+
?.getAssociation<Assoc>(
17+
Query(where: [Where.exact('id', data['id'])], limit: 1))
18+
.then((r) => r?.isNotEmpty ?? false ? r!.first : null),
1719
notApplied: data['not_applied'] == null
1820
? null
1921
: await OtherAssocAdapter().fromTest(data['not_applied'],

packages/brick_offline_first_build/test/offline_first_generator/test_offline_first_where.dart

+23-18
Original file line numberDiff line numberDiff line change
@@ -10,25 +10,30 @@ Future<OfflineFirstWhere> _$OfflineFirstWhereFromTest(Map<String, dynamic> data,
1010
{required TestProvider provider,
1111
OfflineFirstRepository? repository}) async {
1212
return OfflineFirstWhere(
13-
assoc: repository!
14-
.getAssociation<OtherAssoc>(
15-
Query(where: [Where.exact('id', data['id'])], limit: 1))
16-
.then((r) => r!.first),
17-
assocs: (data['assocs'] ?? [])
18-
.map<Future<Assoc>>((s) =>
19-
repository.getAssociation<Assoc>(Query(where: [Where.exact('id', s), Where.exact('otherVar', s)])).then(
13+
assoc: data['assoc'] == null
14+
? null
15+
: repository!
16+
.getAssociation<OtherAssoc>(
17+
Query(where: [Where.exact('id', data['id'])], limit: 1))
18+
.then((r) => r!.first),
19+
assocs: data['assocs'] == null
20+
? null
21+
: (data['assocs'] ?? [])
22+
.map<Future<Assoc>>((s) => repository.getAssociation<Assoc>(Query(where: [Where.exact('id', s), Where.exact('otherVar', s)])).then(
2023
(r) => r!.first))
21-
.toList(),
22-
loadedAssoc: await repository
23-
.getAssociation<Assoc>(
24-
Query(where: [Where.exact('id', data['id'])], limit: 1))
25-
.then((r) => r?.isNotEmpty ?? false ? r!.first : null),
26-
loadedAssocs: (await Future.wait<Assoc?>((data['loaded_assocs'] ?? []).map<Future<Assoc?>>((s) => repository.getAssociation<Assoc>(Query(where: [Where.exact('id', s)])).then((r) => r?.isNotEmpty ?? false ? r!.first : null))))
27-
.whereType<Assoc>()
28-
.toList(),
29-
multiLookupCustomGenerator: (data['multi_lookup_custom_generator'] ?? [])
30-
.map<Future<Assoc>>((s) => repository.getAssociation<Assoc>(Query(where: [Where.exact('id', s), Where.exact('otherVar', s)])).then((r) => r!.first))
31-
.toList());
24+
.toList(),
25+
loadedAssoc: data['loaded_assoc'] == null
26+
? null
27+
: await repository
28+
.getAssociation<Assoc>(
29+
Query(where: [Where.exact('id', data['id'])], limit: 1))
30+
.then((r) => r?.isNotEmpty ?? false ? r!.first : null),
31+
loadedAssocs: data['loaded_assocs'] == null
32+
? null
33+
: (await Future.wait<Assoc?>((data['loaded_assocs'] ?? []).map<Future<Assoc?>>((s) => repository.getAssociation<Assoc>(Query(where: [Where.exact('id', s)])).then((r) => r?.isNotEmpty ?? false ? r!.first : null))))
34+
.whereType<Assoc>()
35+
.toList(),
36+
multiLookupCustomGenerator: data['multi_lookup_custom_generator'] == null ? null : (data['multi_lookup_custom_generator'] ?? []).map<Future<Assoc>>((s) => repository.getAssociation<Assoc>(Query(where: [Where.exact('id', s), Where.exact('otherVar', s)])).then((r) => r!.first)).toList());
3237
}
3338
3439
Future<Map<String, dynamic>> _$OfflineFirstWhereToTest(

packages/brick_offline_first_build/test/offline_first_generator/test_one_to_many_association.dart

+8-6
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,14 @@ Future<OneToManyAssociation> _$OneToManyAssociationFromTest(
3737
.toList()
3838
.cast<Future<SqliteAssoc>>() ??
3939
[]),
40-
nullableAssoc: await Future.wait<SqliteAssoc>(data['nullable_assoc']
41-
?.map((d) => SqliteAssocAdapter()
42-
.fromTest(d, provider: provider, repository: repository))
43-
.toList()
44-
.cast<Future<SqliteAssoc>>() ??
45-
[]));
40+
nullableAssoc: data['nullable_assoc'] == null
41+
? null
42+
: await Future.wait<SqliteAssoc>(data['nullable_assoc']
43+
?.map((d) => SqliteAssocAdapter()
44+
.fromTest(d, provider: provider, repository: repository))
45+
.toList()
46+
.cast<Future<SqliteAssoc>>() ??
47+
[]));
4648
}
4749
4850
Future<Map<String, dynamic>> _$OneToManyAssociationToTest(

packages/brick_offline_first_build/test/offline_first_generator/test_primitive_fields.dart

+35-16
Original file line numberDiff line numberDiff line change
@@ -7,25 +7,44 @@ Future<PrimitiveFields> _$PrimitiveFieldsFromTest(Map<String, dynamic> data,
77
{required TestProvider provider,
88
OfflineFirstRepository? repository}) async {
99
return PrimitiveFields(
10-
nullableInteger: data['nullable_integer'] as int?,
11-
nullableBoolean: data['nullable_boolean'] as bool?,
12-
nullableDub: data['nullable_dub'] as double?,
13-
nullableString: data['nullable_string'] as String?,
14-
nullableList: data['nullable_list']?.toList().cast<int>(),
15-
nullableSet: data['nullable_set']?.toSet().cast<int>(),
16-
nullableMap: data['nullable_map'],
10+
nullableInteger: data['nullable_integer'] == null
11+
? null
12+
: data['nullable_integer'] as int?,
13+
nullableBoolean: data['nullable_boolean'] == null
14+
? null
15+
: data['nullable_boolean'] as bool?,
16+
nullableDub:
17+
data['nullable_dub'] == null ? null : data['nullable_dub'] as double?,
18+
nullableString: data['nullable_string'] == null
19+
? null
20+
: data['nullable_string'] as String?,
21+
nullableList: data['nullable_list'] == null
22+
? null
23+
: data['nullable_list']?.toList().cast<int>(),
24+
nullableSet: data['nullable_set'] == null
25+
? null
26+
: data['nullable_set']?.toSet().cast<int>(),
27+
nullableMap: data['nullable_map'] == null ? null : data['nullable_map'],
1728
nullableLongerCamelizedVariable:
18-
data['nullable_longer_camelized_variable'] as String?,
19-
nullableCasing: data['nullable_casing'] is int
20-
? Casing.values[data['nullable_casing'] as int]
21-
: null,
22-
nullableListCasing: data['nullable_list_casing']
23-
.map((e) => Casing.values[e])
24-
.toList()
25-
.cast<Casing>(),
29+
data['nullable_longer_camelized_variable'] == null
30+
? null
31+
: data['nullable_longer_camelized_variable'] as String?,
32+
nullableCasing: data['nullable_casing'] == null
33+
? null
34+
: data['nullable_casing'] is int
35+
? Casing.values[data['nullable_casing'] as int]
36+
: null,
37+
nullableListCasing: data['nullable_list_casing'] == null
38+
? null
39+
: data['nullable_list_casing']
40+
.map((e) => Casing.values[e])
41+
.toList()
42+
.cast<Casing>(),
2643
nullableDateTime: data['nullable_date_time'] == null
2744
? null
28-
: DateTime.tryParse(data['nullable_date_time'] as String),
45+
: data['nullable_date_time'] == null
46+
? null
47+
: DateTime.tryParse(data['nullable_date_time'] as String),
2948
integer: data['integer'] as int,
3049
boolean: data['boolean'] as bool,
3150
dub: data['dub'] as double,

packages/brick_offline_first_build/test/offline_first_generator/test_unique_offline_first_serdes.dart

+3-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ Future<CustomOfflineFirstSerdes> _$CustomOfflineFirstSerdesFromTest(
1111
{required TestProvider provider,
1212
OfflineFirstRepository? repository}) async {
1313
return CustomOfflineFirstSerdes(
14-
string: Serializable.fromTest(data['string']));
14+
string: data['string'] == null
15+
? null
16+
: Serializable.fromTest(data['string']));
1517
}
1618
1719
Future<Map<String, dynamic>> _$CustomOfflineFirstSerdesToTest(

packages/brick_offline_first_with_graphql_build/test/offline_first_generator/test_custom_serdes.dart

+3-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ Future<CustomSerdes> _$CustomSerdesFromGraphql(Map<String, dynamic> data,
77
{required GraphqlProvider provider,
88
OfflineFirstRepository? repository}) async {
99
return CustomSerdes(
10-
string: data['string'].split('').map((s) => '$s.1').join(''));
10+
string: data['string'] == null
11+
? null
12+
: data['string'].split('').map((s) => '$s.1').join(''));
1113
}
1214
1315
Future<Map<String, dynamic>> _$CustomSerdesToGraphql(CustomSerdes instance,

packages/brick_offline_first_with_graphql_build/test/offline_first_generator/test_specify_field_name.dart

+4-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,10 @@ Future<SpecifyFieldName> _$SpecifyFieldNameFromGraphql(
77
Map<String, dynamic> data,
88
{required GraphqlProvider provider,
99
OfflineFirstRepository? repository}) async {
10-
return SpecifyFieldName(email: data['email_address'] as String?);
10+
return SpecifyFieldName(
11+
email: data['email_address'] == null
12+
? null
13+
: data['email_address'] as String?);
1114
}
1215
1316
Future<Map<String, dynamic>> _$SpecifyFieldNameToGraphql(

packages/brick_offline_first_with_rest_build/test/offline_first_generator/test_custom_serdes.dart

+3-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ Future<CustomSerdes> _$CustomSerdesFromRest(Map<String, dynamic> data,
77
{required RestProvider provider,
88
OfflineFirstRepository? repository}) async {
99
return CustomSerdes(
10-
string: data['string'].split('').map((s) => '$s.1').join(''));
10+
string: data['string'] == null
11+
? null
12+
: data['string'].split('').map((s) => '$s.1').join(''));
1113
}
1214
1315
Future<Map<String, dynamic>> _$CustomSerdesToRest(CustomSerdes instance,

packages/brick_offline_first_with_rest_build/test/offline_first_generator/test_specify_field_name.dart

+4-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,10 @@ const output = r'''
66
Future<SpecifyFieldName> _$SpecifyFieldNameFromRest(Map<String, dynamic> data,
77
{required RestProvider provider,
88
OfflineFirstRepository? repository}) async {
9-
return SpecifyFieldName(email: data['email_address'] as String?);
9+
return SpecifyFieldName(
10+
email: data['email_address'] == null
11+
? null
12+
: data['email_address'] as String?);
1013
}
1114
1215
Future<Map<String, dynamic>> _$SpecifyFieldNameToRest(SpecifyFieldName instance,

packages/brick_offline_first_with_rest_build/test/offline_first_generator_test.dart

-2
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@ void main() {
2525
await generateAdapterExpectation('rest_config_endpoint', rest_config_endpoint.output);
2626
});
2727

28-
test('restSerializable#nullable', () {}, skip: 'Write implementation and then write test');
29-
3028
test('restSerializable#fieldRename', () async {
3129
await generateExpectation('rest_config_field_rename', rest_config_field_rename.output);
3230
});

packages/brick_offline_first_with_supabase_build/test/offline_first_generator/test_field_name.dart

+4-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,10 @@ Future<SpecifyFieldName> _$SpecifyFieldNameFromSupabase(
77
Map<String, dynamic> data,
88
{required SupabaseProvider provider,
99
OfflineFirstRepository? repository}) async {
10-
return SpecifyFieldName(email: data['supa_email_address'] as String?);
10+
return SpecifyFieldName(
11+
email: data['supa_email_address'] == null
12+
? null
13+
: data['supa_email_address'] as String?);
1114
}
1215
1316
Future<Map<String, dynamic>> _$SpecifyFieldNameToSupabase(

packages/brick_offline_first_with_supabase_build/test/offline_first_generator/test_offline_first_where.dart

+7-5
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,13 @@ Future<SupabaseOfflineFirstWhere> _$SupabaseOfflineFirstWhereFromSupabase(
2020
.toList()
2121
.cast<Future<Assoc>>() ??
2222
[]),
23-
nullableAssociations: await Future.wait<Assoc>(data['nullable_associations']
24-
?.map((d) => AssocAdapter().fromSupabase(d, provider: provider, repository: repository))
25-
.toList()
26-
.cast<Future<Assoc>>() ??
27-
[]));
23+
nullableAssociations: data['nullable_associations'] == null
24+
? null
25+
: await Future.wait<Assoc>(data['nullable_associations']
26+
?.map((d) => AssocAdapter().fromSupabase(d, provider: provider, repository: repository))
27+
.toList()
28+
.cast<Future<Assoc>>() ??
29+
[]));
2830
}
2931
3032
Future<Map<String, dynamic>> _$SupabaseOfflineFirstWhereToSupabase(

0 commit comments

Comments
 (0)