Skip to content

Commit

Permalink
test(firestore): switch testWidgets() to test() for e2e tests (#1…
Browse files Browse the repository at this point in the history
  • Loading branch information
russellwheatley authored Nov 19, 2024
1 parent 3de12fc commit c0fa83f
Show file tree
Hide file tree
Showing 16 changed files with 458 additions and 483 deletions.
16 changes: 9 additions & 7 deletions .github/workflows/ios.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ on:
- 'docs/**'
- 'website/**'
- '**/example/**'
- '!**/example/integration_test/**'
- '**/flutterfire_ui/**'
- '**.md'
push:
Expand All @@ -19,6 +20,7 @@ on:
- 'docs/**'
- 'website/**'
- '**/example/**'
- '!**/example/integration_test/**'
- '**/flutterfire_ui/**'
- '**.md'

Expand Down Expand Up @@ -101,16 +103,16 @@ jobs:
ccache -s
- name: Start Firebase Emulator
run: sudo chown -R 501:20 "/Users/runner/.npm" && cd ./.github/workflows/scripts && ./start-firebase-emulator.sh
- uses: futureware-tech/simulator-action@48e51da14445b3eedca643bba4b78d9d8332ff31
id: simulator
with:
# List of available simulators: https://github.com/actions/runner-images/blob/main/images/macos/macos-14-Readme.md#installed-simulators
model: "iPhone 15"
- name: 'E2E Tests'
working-directory: ${{ matrix.working_directory }}
env:
SIMULATOR: ${{ steps.simulator.outputs.udid }}
run: |
# Boot simulator and wait for System app to be ready.
# List of available simulators: https://github.com/actions/runner-images/blob/main/images/macos/macos-14-Readme.md#installed-simulators
SIMULATOR="iPhone 15"
xcrun simctl bootstatus "$SIMULATOR" -b
xcrun simctl logverbose "$SIMULATOR" enable
# Sleep to allow simulator to settle.
sleep 15
# Uncomment following line to have simulator logs printed out for debugging purposes.
# xcrun simctl spawn booted log stream --predicate 'eventMessage contains "flutter"' &
flutter test integration_test/e2e_test.dart -d "$SIMULATOR" --dart-define=CI=true
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ void runCollectionReferenceTests() {
return collection;
}

testWidgets('add() adds a document', (_) async {
test('add() adds a document', () async {
CollectionReference<Map<String, dynamic>> collection =
await initializeTest('collection-reference-add');
var rand = Random();
Expand All @@ -42,9 +42,9 @@ void runCollectionReferenceTests() {
expect(randNum, equals(snapshot.data()!['value']));
});

testWidgets(
test(
'snapshots() can be reused',
(_) async {
() async {
final foo = await initializeTest('foo');

final snapshot = foo.snapshots();
Expand Down Expand Up @@ -86,9 +86,9 @@ void runCollectionReferenceTests() {
group(
'withConverter',
() {
testWidgets(
test(
'add/snapshot',
(_) async {
() async {
final foo = await initializeTest('foo');
final fooConverter = foo.withConverter<int>(
fromFirestore: (snapshots, _) =>
Expand Down Expand Up @@ -179,9 +179,9 @@ void runCollectionReferenceTests() {
timeout: const Timeout.factor(3),
);

testWidgets(
test(
'returning null from `fromFirestore` should not throw a null check error',
(_) async {
() async {
final foo = await initializeTest('foo');
await foo.add({'value': 42});
final fooConverter = foo.withConverter(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@ void runDocumentChangeTests() {
return collection;
}

testWidgets(
test(
'can add/update values to null in the document',
(_) async {
() async {
CollectionReference<Map<String, dynamic>> collection =
await initializeTest('null-test');
DocumentReference<Map<String, dynamic>> doc1 = collection.doc('doc1');
Expand Down Expand Up @@ -84,9 +84,9 @@ void runDocumentChangeTests() {
skip: defaultTargetPlatform == TargetPlatform.windows,
);

testWidgets(
test(
'returns the correct metadata when adding and removing',
(_) async {
() async {
CollectionReference<Map<String, dynamic>> collection =
await initializeTest('add-remove-document');
DocumentReference<Map<String, dynamic>> doc1 = collection.doc('doc1');
Expand Down Expand Up @@ -141,9 +141,9 @@ void runDocumentChangeTests() {
skip: defaultTargetPlatform == TargetPlatform.windows,
);

testWidgets(
test(
'returns the correct metadata when modifying',
(_) async {
() async {
CollectionReference<Map<String, dynamic>> collection =
await initializeTest('add-modify-document');
DocumentReference<Map<String, dynamic>> doc1 = collection.doc('doc1');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,15 @@ void runDocumentReferenceTests() {
group(
'DocumentReference.snapshots()',
() {
testWidgets('returns a [Stream]', (_) async {
test('returns a [Stream]', () async {
DocumentReference<Map<String, dynamic>> document =
await initializeTest('document-snapshot');
Stream<DocumentSnapshot<Map<String, dynamic>>> stream =
document.snapshots();
expect(stream, isA<Stream<DocumentSnapshot<Map<String, dynamic>>>>());
});

testWidgets('can be reused', (_) async {
test('can be reused', () async {
final foo = await initializeTest('foo');

final snapshot = foo.snapshots();
Expand Down Expand Up @@ -66,7 +66,7 @@ void runDocumentReferenceTests() {
);
});

testWidgets('listens to a single response', (_) async {
test('listens to a single response', () async {
DocumentReference<Map<String, dynamic>> document =
await initializeTest('document-snapshot');
Stream<DocumentSnapshot<Map<String, dynamic>>> stream =
Expand All @@ -88,7 +88,7 @@ void runDocumentReferenceTests() {
});
});

testWidgets('listens to a single response from cache', (_) async {
test('listens to a single response from cache', () async {
DocumentReference<Map<String, dynamic>> document =
await initializeTest('document-snapshot');
Stream<DocumentSnapshot<Map<String, dynamic>>> stream =
Expand All @@ -110,7 +110,7 @@ void runDocumentReferenceTests() {
});
});

testWidgets('listens to a document from cache', (_) async {
test('listens to a document from cache', () async {
DocumentReference<Map<String, dynamic>> document =
await initializeTest('document-snapshot-cache');
await document.set({'foo': 'bar'});
Expand All @@ -134,7 +134,7 @@ void runDocumentReferenceTests() {
});
});

testWidgets('listens to multiple documents', (_) async {
test('listens to multiple documents', () async {
DocumentReference<Map<String, dynamic>> doc1 =
await initializeTest('document-snapshot-1');
DocumentReference<Map<String, dynamic>> doc2 =
Expand All @@ -150,7 +150,7 @@ void runDocumentReferenceTests() {
await expectLater(value2, completion('value2'));
});

testWidgets('listens to a multiple changes response', (_) async {
test('listens to a multiple changes response', () async {
DocumentReference<Map<String, dynamic>> document =
await initializeTest('document-snapshot-multiple');
Stream<DocumentSnapshot<Map<String, dynamic>>> stream =
Expand Down Expand Up @@ -197,7 +197,7 @@ void runDocumentReferenceTests() {
);
});

testWidgets('listeners throws a [FirebaseException]', (_) async {
test('listeners throws a [FirebaseException]', () async {
DocumentReference<Map<String, dynamic>> document =
firestore.doc('not-allowed/document');
Stream<DocumentSnapshot<Map<String, dynamic>>> stream =
Expand All @@ -220,7 +220,7 @@ void runDocumentReferenceTests() {
);

group('DocumentReference.delete()', () {
testWidgets('delete() deletes a document', (_) async {
test('delete() deletes a document', () async {
DocumentReference<Map<String, dynamic>> document =
await initializeTest('document-delete');
await document.set({
Expand All @@ -233,9 +233,9 @@ void runDocumentReferenceTests() {
expect(snapshot2.exists, isFalse);
});

testWidgets(
test(
'throws a [FirebaseException] on error',
(_) async {
() async {
DocumentReference<Map<String, dynamic>> document =
firestore.doc('not-allowed/document');

Expand All @@ -257,7 +257,7 @@ void runDocumentReferenceTests() {
});

group('DocumentReference.get()', () {
testWidgets('gets a document from server', (_) async {
test('gets a document from server', () async {
DocumentReference<Map<String, dynamic>> document =
await initializeTest('document-get-server');
await document.set({'foo': 'bar'});
Expand All @@ -267,9 +267,9 @@ void runDocumentReferenceTests() {
expect(snapshot.metadata.isFromCache, isFalse);
});

testWidgets(
test(
'gets a document from cache',
(_) async {
() async {
DocumentReference<Map<String, dynamic>> document =
await initializeTest('document-get-cache');
await document.set({'foo': 'bar'});
Expand All @@ -281,9 +281,9 @@ void runDocumentReferenceTests() {
skip: kIsWeb,
);

testWidgets(
test(
'throws a [FirebaseException] on error',
(_) async {
() async {
DocumentReference<Map<String, dynamic>> document =
firestore.doc('not-allowed/document');

Expand All @@ -303,7 +303,7 @@ void runDocumentReferenceTests() {
});

group('DocumentReference.set()', () {
testWidgets('sets data', (_) async {
test('sets data', () async {
DocumentReference<Map<String, dynamic>> document =
await initializeTest('document-set');
await document.set({'foo': 'bar'});
Expand All @@ -314,7 +314,7 @@ void runDocumentReferenceTests() {
expect(snapshot2.data(), equals({'bar': 'baz'}));
});

testWidgets('set() merges data', (_) async {
test('set() merges data', () async {
DocumentReference<Map<String, dynamic>> document =
await initializeTest('document-set-merge');
await document.set({'foo': 'bar'});
Expand All @@ -326,9 +326,9 @@ void runDocumentReferenceTests() {
expect(snapshot2.data(), equals({'foo': 'ben', 'bar': 'baz'}));
});

testWidgets(
test(
'set() merges fields',
(_) async {
() async {
DocumentReference<Map<String, dynamic>> document =
await initializeTest('document-set-merge-fields');
Map<String, dynamic> initialData = {
Expand Down Expand Up @@ -363,9 +363,9 @@ void runDocumentReferenceTests() {
},
);

testWidgets(
test(
'throws a [FirebaseException] on error',
(_) async {
() async {
DocumentReference<Map<String, dynamic>> document =
firestore.doc('not-allowed/document');

Expand All @@ -383,7 +383,7 @@ void runDocumentReferenceTests() {
},
);

testWidgets('set and return all possible datatypes', (_) async {
test('set and return all possible datatypes', () async {
DocumentReference<Map<String, dynamic>> document =
await initializeTest('document-types');

Expand Down Expand Up @@ -453,7 +453,7 @@ void runDocumentReferenceTests() {
});

group('DocumentReference.update()', () {
testWidgets('updates data', (_) async {
test('updates data', () async {
DocumentReference<Map<String, dynamic>> document =
await initializeTest('document-update');
await document.set({'foo': 'bar'});
Expand All @@ -464,7 +464,7 @@ void runDocumentReferenceTests() {
expect(snapshot2.data(), equals({'foo': 'bar', 'bar': 'baz'}));
});

testWidgets('updates nested data using dots', (_) async {
test('updates nested data using dots', () async {
DocumentReference<Map<String, dynamic>> document =
await initializeTest('document-update-field-path');
await document.set({
Expand All @@ -488,7 +488,7 @@ void runDocumentReferenceTests() {
);
});

testWidgets('updates nested data using FieldPath', (_) async {
test('updates nested data using FieldPath', () async {
DocumentReference<Map<String, dynamic>> document =
await initializeTest('document-update-field-path');
await document.set({
Expand All @@ -514,8 +514,7 @@ void runDocumentReferenceTests() {
);
});

testWidgets('updates nested data containing a dot using FieldPath',
(_) async {
test('updates nested data containing a dot using FieldPath', () async {
DocumentReference<Map<String, dynamic>> document =
await initializeTest('document-update-field-path');
await document.set({'foo.bar': 'baz'});
Expand All @@ -535,9 +534,9 @@ void runDocumentReferenceTests() {
);
});

testWidgets(
test(
'throws if document does not exist',
(_) async {
() async {
DocumentReference<Map<String, dynamic>> document =
await initializeTest('document-update-not-exists');
try {
Expand All @@ -555,9 +554,9 @@ void runDocumentReferenceTests() {
});

group('withConverter', () {
testWidgets(
test(
'set/snapshot/get',
(_) async {
() async {
final foo = await initializeTest('foo');
final fooConverter = foo.withConverter<int>(
fromFirestore: (snapshots, _) => snapshots.data()!['value']! as int,
Expand Down
Loading

0 comments on commit c0fa83f

Please sign in to comment.