Skip to content

Commit 9a1299b

Browse files
committed
update to isFirebaseServerApp to take null | undef
1 parent 9da69bc commit 9a1299b

File tree

2 files changed

+29
-3
lines changed

2 files changed

+29
-3
lines changed

packages/app/src/internal.test.ts

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import { expect } from 'chai';
1919
import { stub } from 'sinon';
2020
import '../test/setup';
2121
import { createTestComponent, TestService } from '../test/util';
22-
import { initializeApp, getApps, deleteApp } from './api';
22+
import { initializeApp, initializeServerApp, getApps, deleteApp } from './api';
2323
import { FirebaseAppImpl } from './firebaseApp';
2424
import {
2525
_addComponent,
@@ -28,9 +28,11 @@ import {
2828
_components,
2929
_clearComponents,
3030
_getProvider,
31-
_removeServiceInstance
31+
_removeServiceInstance,
32+
_isFirebaseServerApp
3233
} from './internal';
3334
import { logger } from './logger';
35+
import { isBrowser } from '@firebase/util';
3436

3537
declare module '@firebase/component' {
3638
interface NameServiceMapping {
@@ -161,4 +163,25 @@ describe('Internal API tests', () => {
161163
expect(instance1).to.not.equal(instance2);
162164
});
163165
});
166+
167+
describe('_isFirebaseServerApp', () => {
168+
it('detects a valid FirebaseServerApp', () => {
169+
if (!isBrowser()) {
170+
// FirebaseServerApp isn't supported for execution in browser environments.
171+
const app = initializeServerApp({}, {});
172+
expect(_isFirebaseServerApp(app)).to.be.true;
173+
}
174+
});
175+
it('a standard FirebaseApp returns false', () => {
176+
const app = initializeApp({});
177+
expect(_isFirebaseServerApp(app)).to.be.false;
178+
});
179+
it('a null object returns false', () => {
180+
expect(_isFirebaseServerApp(null)).to.be.false;
181+
});
182+
it('undefined returns false', () => {
183+
let app: undefined;
184+
expect(_isFirebaseServerApp(app)).to.be.false;
185+
});
186+
});
164187
});

packages/app/src/internal.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,8 +168,11 @@ export function _isFirebaseApp(
168168
* @internal
169169
*/
170170
export function _isFirebaseServerApp(
171-
obj: FirebaseApp | FirebaseServerApp
171+
obj: FirebaseApp | FirebaseServerApp | null | undefined
172172
): obj is FirebaseServerApp {
173+
if (obj === null || obj === undefined) {
174+
return false;
175+
}
173176
return (obj as FirebaseServerApp).settings !== undefined;
174177
}
175178

0 commit comments

Comments
 (0)