@@ -41,6 +41,7 @@ import {Database} from '@firebase/database';
41
41
import { InstanceId } from '../../src/instance-id/instance-id' ;
42
42
import { ProjectManagement } from '../../src/project-management/project-management' ;
43
43
import { FirebaseAppError , AppErrorCodes } from '../../src/utils/error' ;
44
+ import { FIREBASE_DATABASE_EMULATOR_HOST_VAR } from '../../src/database/database' ;
44
45
45
46
chai . should ( ) ;
46
47
chai . use ( sinonChai ) ;
@@ -434,12 +435,29 @@ describe('FirebaseApp', () => {
434
435
} ) ;
435
436
436
437
it ( 'should throw when databaseURL is not set' , ( ) => {
438
+ delete process . env [ FIREBASE_DATABASE_EMULATOR_HOST_VAR ] ;
437
439
const app = firebaseNamespace . initializeApp ( mocks . appOptionsNoDatabaseUrl , mocks . appName ) ;
438
440
expect ( ( ) => {
439
441
app . database ( ) ;
440
442
} ) . to . throw ( 'Can\'t determine Firebase Database URL.' ) ;
441
443
} ) ;
442
444
445
+ it ( 'should use FIREBASE_DATABASE_EMULATOR_HOST when databaseURL not set' , ( ) => {
446
+ const url = 'localhost.com:9000?ns=test' ;
447
+ process . env [ FIREBASE_DATABASE_EMULATOR_HOST_VAR ] = url ;
448
+ const app = firebaseNamespace . initializeApp ( mocks . appOptionsNoDatabaseUrl , mocks . appName ) ;
449
+ const db : Database = app . database ( ) ;
450
+ expect ( db . ref ( ) . toString ( ) ) . to . equal ( 'http://localhost.com:9000/' ) ;
451
+ } ) ;
452
+
453
+ it ( 'should prefer databaseURL when FIREBASE_DATABASE_EMULATOR_HOST set' , ( ) => {
454
+ const url = 'localhost.com:9000?ns=test' ;
455
+ process . env [ FIREBASE_DATABASE_EMULATOR_HOST_VAR ] = url ;
456
+ const app = firebaseNamespace . initializeApp ( mocks . appOptions , mocks . appName ) ;
457
+ const db : Database = app . database ( ) ;
458
+ expect ( db . ref ( ) . toString ( ) ) . to . equal ( 'https://databasename.firebaseio.com/' ) ;
459
+ } ) ;
460
+
443
461
it ( 'should return a cached version of Database on subsequent calls' , ( ) => {
444
462
const app = firebaseNamespace . initializeApp ( mocks . appOptions , mocks . appName ) ;
445
463
const db1 : Database = app . database ( ) ;
0 commit comments