Skip to content

Commit 7b790bd

Browse files
mikelehenjshcrowthe
authored andcommitted
Expose enable/DisableNetwork() via INTERNAL so it can be used in tests (but don't add to our .d.ts at least for now). (#207)
1 parent 9a82f43 commit 7b790bd

File tree

3 files changed

+20
-13
lines changed

3 files changed

+20
-13
lines changed

packages/firestore/src/api/database.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -187,9 +187,7 @@ export class Firestore implements firestore.Firestore, FirebaseService {
187187
//
188188
// Operations on the _firestoreClient don't block on _firestoreReady. Those
189189
// are already set to synchronize on the async queue.
190-
//
191-
// This is public for testing.
192-
public _firestoreClient: FirestoreClient | undefined;
190+
private _firestoreClient: FirestoreClient | undefined;
193191
public _dataConverter: UserDataConverter;
194192

195193
constructor(databaseIdOrApp: FirestoreDatabase | FirebaseApp) {
@@ -373,7 +371,10 @@ export class Firestore implements firestore.Firestore, FirebaseService {
373371
} else {
374372
return Promise.resolve();
375373
}
376-
}
374+
},
375+
// Exposed via INTERNAL for use in tests.
376+
disableNetwork: () => this._firestoreClient.disableNetwork(),
377+
enableNetwork: () => this._firestoreClient.enableNetwork()
377378
};
378379

379380
collection(pathString: string): firestore.CollectionReference {

packages/firestore/test/integration/api/database.test.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -519,14 +519,16 @@ apiDescribe('Database', persistence => {
519519
asyncIt('can queue writes while offline', () => {
520520
return withTestDb(persistence, db => {
521521
const docRef = db.collection('rooms').doc();
522-
const firestoreClient = (docRef.firestore as Firestore)._firestoreClient;
522+
// TODO(mikelehen): Find better way to expose this to tests.
523+
// tslint:disable-next-line:no-any enableNetwork isn't exposed via d.ts
524+
const firestoreInternal = docRef.firestore.INTERNAL as any;
523525

524-
return firestoreClient
526+
return firestoreInternal
525527
.disableNetwork()
526528
.then(() => {
527529
return Promise.all([
528530
docRef.set({ foo: 'bar' }),
529-
firestoreClient.enableNetwork()
531+
firestoreInternal.enableNetwork()
530532
]);
531533
})
532534
.then(() => docRef.get())
@@ -539,14 +541,16 @@ apiDescribe('Database', persistence => {
539541
asyncIt('can get documents while offline', () => {
540542
return withTestDb(persistence, db => {
541543
const docRef = db.collection('rooms').doc();
542-
const firestoreClient = (docRef.firestore as Firestore)._firestoreClient;
544+
// TODO(mikelehen): Find better way to expose this to tests.
545+
// tslint:disable-next-line:no-any enableNetwork isn't exposed via d.ts
546+
const firestoreInternal = docRef.firestore.INTERNAL as any;
543547

544-
return firestoreClient.disableNetwork().then(() => {
548+
return firestoreInternal.disableNetwork().then(() => {
545549
const writePromise = docRef.set({ foo: 'bar' });
546550

547551
return docRef.get().then(snapshot => {
548552
expect(snapshot.metadata.fromCache).to.be.true;
549-
return firestoreClient.enableNetwork().then(() => {
553+
return firestoreInternal.enableNetwork().then(() => {
550554
return writePromise.then(() => {
551555
docRef.get().then(doc => {
552556
expect(snapshot.metadata.fromCache).to.be.false;

packages/firestore/test/integration/api/query.test.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -456,7 +456,9 @@ apiDescribe('Queries', persistence => {
456456

457457
asyncIt('can query while reconnecting to network', () => {
458458
return withTestCollection(persistence, /* docs= */ {}, coll => {
459-
const firestoreClient = (coll.firestore as Firestore)._firestoreClient;
459+
// TODO(mikelehen): Find better way to expose this to tests.
460+
// tslint:disable-next-line:no-any enableNetwork isn't exposed via d.ts
461+
const firestoreInternal = coll.firestore.INTERNAL as any;
460462

461463
const deferred = new Deferred<void>();
462464

@@ -469,9 +471,9 @@ apiDescribe('Queries', persistence => {
469471
}
470472
);
471473

472-
firestoreClient.disableNetwork().then(() => {
474+
firestoreInternal.disableNetwork().then(() => {
473475
coll.doc().set({ a: 1 });
474-
firestoreClient.enableNetwork();
476+
firestoreInternal.enableNetwork();
475477
});
476478

477479
return deferred.promise.then(unregister);

0 commit comments

Comments
 (0)