Skip to content

Commit 443f460

Browse files
committed
fix(app, ios): firebase-ios-sdk 10.2.0
- UTM parameters come through now on dynamic links, adjust tests - firestore handles writes to deleted docs slightly differently, adjust tests - repair test assertion failure structures that did not trigger promise rejects
1 parent 0febbd1 commit 443f460

5 files changed

Lines changed: 225 additions & 188 deletions

File tree

docs/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ Open your projects `/ios/Podfile` and add any of the globals shown below to the
230230

231231
```ruby
232232
# Override Firebase SDK Version
233-
$FirebaseSDKVersion = '10.1.0'
233+
$FirebaseSDKVersion = '10.2.0'
234234
```
235235

236236
Once changed, reinstall your projects pods via pod install and rebuild your project with `npx react-native run-ios`.

packages/app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565
},
6666
"sdkVersions": {
6767
"ios": {
68-
"firebase": "10.1.0",
68+
"firebase": "10.2.0",
6969
"iosTarget": "11.0",
7070
"macosTarget": "10.13"
7171
},

packages/dynamic-links/e2e/dynamicLinks.e2e.js

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,13 @@ describe('dynamicLinks()', function () {
197197
link.utmParameters.utm_medium.should.equal('web');
198198
link.utmParameters.utm_campaign.should.equal('prs-welcome');
199199
} else {
200-
link.utmParameters.should.eql({});
200+
link.utmParameters.should.eql({
201+
utm_campaign: null,
202+
utm_term: null,
203+
utm_content: null,
204+
utm_medium: null,
205+
utm_source: null,
206+
});
201207
}
202208
});
203209
});
@@ -230,7 +236,13 @@ describe('dynamicLinks()', function () {
230236
link.utmParameters.utm_medium.should.equal('web');
231237
link.utmParameters.utm_campaign.should.equal('prs-welcome');
232238
} else {
233-
link.utmParameters.should.eql({});
239+
link.utmParameters.should.eql({
240+
utm_campaign: null,
241+
utm_term: null,
242+
utm_content: null,
243+
utm_medium: null,
244+
utm_source: null,
245+
});
234246
}
235247
} else {
236248
this.skip();

packages/firestore/e2e/firestore.e2e.js

Lines changed: 50 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -202,13 +202,17 @@ describe('firestore()', function () {
202202
describe('serverTimestampBehavior', function () {
203203
it("handles 'estimate'", async function () {
204204
firebase.firestore().settings({ serverTimestampBehavior: 'estimate' });
205-
const ref = firebase.firestore().doc(`${COLLECTION}/getData`);
205+
const ref = firebase.firestore().doc(`${COLLECTION}/serverTimestampEstimate`);
206206

207207
const promise = new Promise((resolve, reject) => {
208208
const subscription = ref.onSnapshot(snapshot => {
209-
should(snapshot.get('timestamp')).be.an.instanceOf(firebase.firestore.Timestamp);
210-
subscription();
211-
resolve();
209+
try {
210+
should(snapshot.get('timestamp')).be.an.instanceOf(firebase.firestore.Timestamp);
211+
subscription();
212+
resolve();
213+
} catch (e) {
214+
reject(e);
215+
}
212216
}, reject);
213217
});
214218

@@ -218,28 +222,33 @@ describe('firestore()', function () {
218222
});
219223
it("handles 'previous'", async function () {
220224
firebase.firestore().settings({ serverTimestampBehavior: 'previous' });
221-
const ref = firebase.firestore().doc(`${COLLECTION}/getData`);
225+
const ref = firebase.firestore().doc(`${COLLECTION}/serverTimestampPrevious`);
222226

223227
const promise = new Promise((resolve, reject) => {
224228
let counter = 0;
225229
let previous = null;
226230
const subscription = ref.onSnapshot(snapshot => {
227-
switch (counter++) {
228-
case 0:
229-
break;
230-
case 1:
231-
should(snapshot.get('timestamp')).be.an.instanceOf(firebase.firestore.Timestamp);
232-
break;
233-
case 2:
234-
should(snapshot.get('timestamp')).be.an.instanceOf(firebase.firestore.Timestamp);
235-
should(snapshot.get('timestamp').isEqual(previous.get('timestamp'))).equal(true);
236-
break;
237-
case 3:
238-
should(snapshot.get('timestamp')).be.an.instanceOf(firebase.firestore.Timestamp);
239-
should(snapshot.get('timestamp').isEqual(previous.get('timestamp'))).equal(false);
240-
subscription();
241-
resolve();
242-
break;
231+
try {
232+
switch (counter++) {
233+
case 0:
234+
should(snapshot.get('timestamp')).equal(null);
235+
break;
236+
case 1:
237+
should(snapshot.get('timestamp')).be.an.instanceOf(firebase.firestore.Timestamp);
238+
break;
239+
case 2:
240+
should(snapshot.get('timestamp')).be.an.instanceOf(firebase.firestore.Timestamp);
241+
should(snapshot.get('timestamp').isEqual(previous.get('timestamp'))).equal(true);
242+
break;
243+
case 3:
244+
should(snapshot.get('timestamp')).be.an.instanceOf(firebase.firestore.Timestamp);
245+
should(snapshot.get('timestamp').isEqual(previous.get('timestamp'))).equal(false);
246+
subscription();
247+
resolve();
248+
break;
249+
}
250+
} catch (e) {
251+
reject(e);
243252
}
244253
previous = snapshot;
245254
}, reject);
@@ -253,13 +262,29 @@ describe('firestore()', function () {
253262
});
254263
it("handles 'none'", async function () {
255264
firebase.firestore().settings({ serverTimestampBehavior: 'none' });
256-
const ref = firebase.firestore().doc(`${COLLECTION}/getData`);
265+
const ref = firebase.firestore().doc(`${COLLECTION}/serverTimestampNone`);
257266

258267
const promise = new Promise((resolve, reject) => {
268+
let counter = 0;
259269
const subscription = ref.onSnapshot(snapshot => {
260-
should(snapshot.get('timestamp')).equal(null);
261-
subscription();
262-
resolve();
270+
try {
271+
switch (counter++) {
272+
case 0:
273+
// The initial callback snapshot should have no value for the timestamp, it has not been set at all
274+
should(snapshot.get('timestamp')).equal(null);
275+
break;
276+
case 1:
277+
should(snapshot.get('timestamp')).be.an.instanceOf(firebase.firestore.Timestamp);
278+
subscription();
279+
resolve();
280+
break;
281+
default:
282+
// there should only be initial callback and set callback, any other callbacks are a fail
283+
reject(new Error('too many callbacks'));
284+
}
285+
} catch (e) {
286+
reject(e);
287+
}
263288
}, reject);
264289
});
265290

0 commit comments

Comments
 (0)