Skip to content

Commit 3efc875

Browse files
Test for getHighestListenSequenceNumber() recovery
1 parent d656e03 commit 3efc875

File tree

12 files changed

+45
-19
lines changed

12 files changed

+45
-19
lines changed

integration/browserify/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"test:ci": "node ../../scripts/run_tests_in_ci.js"
99
},
1010
"dependencies": {
11-
"firebase": "7.14.4"
11+
"firebase": "7.14.3"
1212
},
1313
"devDependencies": {
1414
"@babel/core": "7.9.6",

integration/firebase-typings/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"test:ci": "node ../../scripts/run_tests_in_ci.js"
88
},
99
"dependencies": {
10-
"firebase": "7.14.4"
10+
"firebase": "7.14.3"
1111
},
1212
"devDependencies": {
1313
"typescript": "3.8.3"

integration/messaging/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"test:manual": "mocha --exit"
99
},
1010
"dependencies": {
11-
"firebase": "7.14.4"
11+
"firebase": "7.14.3"
1212
},
1313
"devDependencies": {
1414
"chai": "4.2.0",

integration/typescript/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"test:ci": "node ../../scripts/run_tests_in_ci.js"
88
},
99
"dependencies": {
10-
"firebase": "7.14.4"
10+
"firebase": "7.14.3"
1111
},
1212
"devDependencies": {
1313
"@babel/core": "7.9.6",

integration/webpack/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"test:ci": "node ../../scripts/run_tests_in_ci.js"
99
},
1010
"dependencies": {
11-
"firebase": "7.14.4"
11+
"firebase": "7.14.3"
1212
},
1313
"devDependencies": {
1414
"@babel/core": "7.9.6",

packages/firebase/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "firebase",
3-
"version": "7.14.4",
3+
"version": "7.14.3",
44
"description": "Firebase JavaScript library for web and Node.js",
55
"author": "Firebase <[email protected]> (https://firebase.google.com/)",
66
"license": "Apache-2.0",
@@ -49,7 +49,7 @@
4949
"@firebase/app-types": "0.6.0",
5050
"@firebase/auth": "0.14.5",
5151
"@firebase/database": "0.6.2",
52-
"@firebase/firestore": "1.14.4",
52+
"@firebase/firestore": "1.14.3",
5353
"@firebase/functions": "0.4.43",
5454
"@firebase/installations": "0.4.9",
5555
"@firebase/messaging": "0.6.15",

packages/firestore/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@firebase/firestore",
3-
"version": "1.14.4",
3+
"version": "1.14.3",
44
"engines": {
55
"node": "^8.13.0 || >=10.10.0"
66
},

packages/firestore/src/local/indexeddb_persistence.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ import {
4545
DbPrimaryClient,
4646
DbPrimaryClientKey,
4747
DbTargetDocument,
48-
DbTargetGlobal,
4948
SCHEMA_VERSION,
5049
SchemaConverter
5150
} from './indexeddb_schema';
@@ -306,10 +305,13 @@ export class IndexedDbPersistence implements Persistence {
306305

307306
this.scheduleClientMetadataAndPrimaryLeaseRefreshes();
308307

309-
return this.simpleDb.runTransaction(
308+
return this.runTransaction(
309+
'getHighestListenSequenceNumber',
310310
'readonly',
311-
[DbTargetGlobal.store],
312-
txn => getHighestListenSequenceNumber(txn)
311+
txn =>
312+
getHighestListenSequenceNumber(
313+
(txn as IndexedDbTransaction).simpleDbTransaction
314+
)
313315
);
314316
})
315317
.then(highestListenSequenceNumber => {

packages/firestore/test/unit/local/indexeddb_persistence.test.ts

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@
1515
* limitations under the License.
1616
*/
1717

18-
import { expect } from 'chai';
18+
import * as chaiAsPromised from 'chai-as-promised';
19+
20+
import { expect, use } from 'chai';
1921
import { Query } from '../../../src/core/query';
2022
import { SnapshotVersion } from '../../../src/core/snapshot_version';
2123
import {
@@ -74,6 +76,8 @@ import {
7476
TEST_SERIALIZER
7577
} from './persistence_test_helpers';
7678

79+
use(chaiAsPromised);
80+
7781
/* eslint-disable no-restricted-globals */
7882

7983
function withDb(
@@ -1158,13 +1162,32 @@ describe('IndexedDb: allowTabSynchronization', () => {
11581162
'clientA',
11591163
/* multiClient= */ true,
11601164
async db => {
1161-
db.injectFailures = { updateClientMetadataAndTryBecomePrimary: true };
1165+
db.injectFailures = {
1166+
updateClientMetadataAndTryBecomePrimary: true,
1167+
getHighestListenSequenceNumber: false
1168+
};
11621169
await db.start();
11631170
await db.shutdown();
11641171
}
11651172
);
11661173
});
11671174

1175+
it('blocks start() when getHighestListenSequenceNumber() fails', async () => {
1176+
await withUnstartedCustomPersistence(
1177+
'clientA',
1178+
/* multiClient= */ false,
1179+
async db1 => {
1180+
db1.injectFailures = {
1181+
updateClientMetadataAndTryBecomePrimary: false,
1182+
getHighestListenSequenceNumber: true
1183+
};
1184+
await expect(db1.start()).to.eventually.be.rejectedWith(
1185+
'IndexedDB transaction failed'
1186+
);
1187+
}
1188+
);
1189+
});
1190+
11681191
it('ignores intermittent IndexedDbTransactionError during lease refresh', async () => {
11691192
await withPersistence('clientA', async (db, _, queue) => {
11701193
db.injectFailures = { updateClientMetadataAndTryBecomePrimary: true };

packages/firestore/test/unit/specs/spec_test_runner.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1215,7 +1215,8 @@ export type PersistenceAction =
12151215
| 'Get target data'
12161216
| 'Get new document changes'
12171217
| 'Synchronize last document change read time'
1218-
| 'updateClientMetadataAndTryBecomePrimary';
1218+
| 'updateClientMetadataAndTryBecomePrimary'
1219+
| 'getHighestListenSequenceNumber';
12191220

12201221
/** Specifies failure or success for a list of database actions. */
12211222
export type SpecDatabaseFailures = Partial<

packages/rxfire/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "rxfire",
3-
"version": "3.12.4",
3+
"version": "3.12.3",
44
"private": false,
55
"description": "Firebase JavaScript library RxJS",
66
"author": "Firebase <[email protected]> (https://firebase.google.com/)",
@@ -43,7 +43,7 @@
4343
"rxjs": "6.x.x"
4444
},
4545
"devDependencies": {
46-
"firebase": "7.14.4",
46+
"firebase": "7.14.3",
4747
"rollup": "2.7.6",
4848
"rollup-plugin-commonjs": "10.1.0",
4949
"rollup-plugin-node-resolve": "5.2.0",

packages/testing/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@firebase/testing",
3-
"version": "0.19.4",
3+
"version": "0.19.3",
44
"description": "",
55
"author": "Firebase <[email protected]> (https://firebase.google.com/)",
66
"main": "dist/index.cjs.js",
@@ -20,7 +20,7 @@
2020
},
2121
"license": "Apache-2.0",
2222
"dependencies": {
23-
"firebase": "7.14.4",
23+
"firebase": "7.14.3",
2424
"@firebase/logger": "0.2.3",
2525
"@firebase/util": "0.2.46",
2626
"@types/request": "2.48.4",

0 commit comments

Comments
 (0)