Skip to content

Commit cc136ea

Browse files
committed
chore: update analysis options and refactor integration tests
1 parent ac36278 commit cc136ea

File tree

10 files changed

+911
-870
lines changed

10 files changed

+911
-870
lines changed

packages/cloud_firestore/cloud_firestore/pipeline_example/analysis_options.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@
99
# packages, and plugins designed to encourage good coding practices.
1010
include: package:flutter_lints/flutter.yaml
1111

12+
analyzer:
13+
# Pipeline e2e tests uses firebase_options.dart injected in CI; exclude integration tests
14+
# from analyze so analyze-ci passes.
15+
exclude:
16+
- integration_test/**
17+
1218
linter:
1319
# The lint rules applied to this project can be customized in the
1420
# section below to disable rules from the `package:flutter_lints/flutter.yaml`

packages/cloud_firestore/cloud_firestore/pipeline_example/integration_test/pipeline/pipeline_add_fields_e2e.dart

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -14,27 +14,29 @@ void runPipelineAddFieldsTests() {
1414

1515
setUpAll(() {
1616
firestore = FirebaseFirestore.instanceFor(
17-
app: Firebase.app(), databaseId: 'firestore-pipeline-test');
17+
app: Firebase.app(),
18+
databaseId: 'firestore-pipeline-test',
19+
);
1820
});
1921

20-
test('addFields with expression returns expected transformed data',
21-
() async {
22-
final snapshot = await firestore
23-
.pipeline()
24-
.collection('pipeline-e2e')
25-
.where(Expression.field('test').equalValue('add-fields'))
26-
.sort(Expression.field('title').ascending())
27-
.addFields(
28-
Expression.field('score').abs().as('abs_score'),
29-
)
30-
.limit(3)
31-
.execute();
32-
expectResultCount(snapshot, 3);
33-
expectResultsData(snapshot, [
34-
{'title': 'alpha', 'score': -7, 'abs_score': 7},
35-
{'title': 'beta', 'score': 42, 'abs_score': 42},
36-
{'title': 'gamma', 'score': 0, 'abs_score': 0},
37-
]);
38-
});
22+
test(
23+
'addFields with expression returns expected transformed data',
24+
() async {
25+
final snapshot = await firestore
26+
.pipeline()
27+
.collection('pipeline-e2e')
28+
.where(Expression.field('test').equalValue('add-fields'))
29+
.sort(Expression.field('title').ascending())
30+
.addFields(Expression.field('score').abs().as('abs_score'))
31+
.limit(3)
32+
.execute();
33+
expectResultCount(snapshot, 3);
34+
expectResultsData(snapshot, [
35+
{'title': 'alpha', 'score': -7, 'abs_score': 7},
36+
{'title': 'beta', 'score': 42, 'abs_score': 42},
37+
{'title': 'gamma', 'score': 0, 'abs_score': 0},
38+
]);
39+
},
40+
);
3941
});
4042
}

packages/cloud_firestore/cloud_firestore/pipeline_example/integration_test/pipeline/pipeline_aggregate_e2e.dart

Lines changed: 31 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -35,32 +35,36 @@ void runPipelineAggregateTests() {
3535
]);
3636
});
3737

38-
test('aggregateWithOptions with groups returns one row per group',
39-
() async {
40-
final snapshot = await firestore
41-
.pipeline()
42-
.collection('pipeline-e2e')
43-
.where(Expression.field('test').equalValue('aggregate'))
44-
.aggregateWithOptions(
45-
AggregateStageOptions(
46-
accumulators: [
47-
Expression.field('score').sum().as('total_score'),
48-
CountAll().as('count'),
49-
],
50-
groups: [Expression.field('category')],
51-
),
52-
)
53-
.execute();
54-
expectResultCount(snapshot, 2);
55-
final results = snapshot.result.map((r) => r.data()!).toList();
56-
results.sort((a, b) =>
57-
(a['category'] as String).compareTo(b['category'] as String));
58-
expect(results[0]['category'], 'x');
59-
expect(results[0]['total_score'], 30);
60-
expect(results[0]['count'], 2);
61-
expect(results[1]['category'], 'y');
62-
expect(results[1]['total_score'], 70);
63-
expect(results[1]['count'], 2);
64-
});
38+
test(
39+
'aggregateWithOptions with groups returns one row per group',
40+
() async {
41+
final snapshot = await firestore
42+
.pipeline()
43+
.collection('pipeline-e2e')
44+
.where(Expression.field('test').equalValue('aggregate'))
45+
.aggregateWithOptions(
46+
AggregateStageOptions(
47+
accumulators: [
48+
Expression.field('score').sum().as('total_score'),
49+
CountAll().as('count'),
50+
],
51+
groups: [Expression.field('category')],
52+
),
53+
)
54+
.execute();
55+
expectResultCount(snapshot, 2);
56+
final results = snapshot.result.map((r) => r.data()!).toList();
57+
results.sort(
58+
(a, b) =>
59+
(a['category'] as String).compareTo(b['category'] as String),
60+
);
61+
expect(results[0]['category'], 'x');
62+
expect(results[0]['total_score'], 30);
63+
expect(results[0]['count'], 2);
64+
expect(results[1]['category'], 'y');
65+
expect(results[1]['total_score'], 70);
66+
expect(results[1]['count'], 2);
67+
},
68+
);
6569
});
6670
}

packages/cloud_firestore/cloud_firestore/pipeline_example/integration_test/pipeline/pipeline_execute_options_e2e.dart

Lines changed: 14 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -19,25 +19,19 @@ void runPipelineExecuteOptionsTests() {
1919
);
2020
});
2121

22-
test(
23-
'execute with ExecuteOptions returns expected results',
24-
() async {
25-
final snapshot = await firestore
26-
.pipeline()
27-
.collection('pipeline-e2e')
28-
.where(Expression.field('test').equalValue('add-fields'))
29-
.sort(Expression.field('title').ascending())
30-
.limit(2)
31-
.execute(
32-
options: const ExecuteOptions(
33-
indexMode: IndexMode.recommended,
34-
),
35-
);
36-
expectResultCount(snapshot, 2);
37-
expect(snapshot.result[0].data()!['title'], 'alpha');
38-
expect(snapshot.result[1].data()!['title'], 'beta');
39-
},
40-
skip: true,
41-
);
22+
test('execute with ExecuteOptions returns expected results', () async {
23+
final snapshot = await firestore
24+
.pipeline()
25+
.collection('pipeline-e2e')
26+
.where(Expression.field('test').equalValue('add-fields'))
27+
.sort(Expression.field('title').ascending())
28+
.limit(2)
29+
.execute(
30+
options: const ExecuteOptions(indexMode: IndexMode.recommended),
31+
);
32+
expectResultCount(snapshot, 2);
33+
expect(snapshot.result[0].data()!['title'], 'alpha');
34+
expect(snapshot.result[1].data()!['title'], 'beta');
35+
}, skip: true);
4236
});
4337
}

0 commit comments

Comments
 (0)