Skip to content

Commit b9cc132

Browse files
committed
Adding StorageBucket and DatabaseURL DI tests
1 parent 2700a36 commit b9cc132

File tree

3 files changed

+102
-6
lines changed

3 files changed

+102
-6
lines changed

src/database/database.spec.ts

Lines changed: 47 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { FirebaseApp } from '@firebase/app-types';
2-
import { FirebaseAppConfig, AngularFireModule} from 'angularfire2';
3-
import { AngularFireDatabase, AngularFireDatabaseModule } from 'angularfire2/database';
2+
import { FirebaseAppConfig, AngularFireModule, FirebaseAppName } from 'angularfire2';
3+
import { AngularFireDatabase, AngularFireDatabaseModule, RealtimeDatabaseURL } from 'angularfire2/database';
44
import { TestBed, inject } from '@angular/core/testing';
55
import { COMMON_CONFIG } from './test-config';
66

@@ -43,8 +43,51 @@ describe('AngularFireDatabase', () => {
4343
expect(db.database.app.name).toEqual(FIREBASE_APP_NAME);
4444
});
4545

46-
it('should have an initialized Firebase database instance member', () => {
47-
expect(db.database.app.name).toEqual(FIREBASE_APP_NAME);
46+
});
47+
48+
});
49+
50+
const FIREBASE_APP_NAME_TOO = (Math.random() + 1).toString(36).substring(7);
51+
const FIREBASE_DB_NAME = `https://test-${(Math.random() + 1).toString(36).substring(7)}.firebaseio.com/`;
52+
53+
describe('AngularFireDatabase w/options', () => {
54+
let app: FirebaseApp;
55+
let db: AngularFireDatabase;
56+
57+
beforeEach(() => {
58+
TestBed.configureTestingModule({
59+
imports: [
60+
AngularFireModule.initializeApp(COMMON_CONFIG, FIREBASE_APP_NAME),
61+
AngularFireDatabaseModule
62+
],
63+
providers: [
64+
{ provide: FirebaseAppName, useValue: FIREBASE_APP_NAME_TOO },
65+
{ provide: FirebaseAppConfig, useValue: COMMON_CONFIG },
66+
{ provide: RealtimeDatabaseURL, useValue: FIREBASE_DB_NAME }
67+
]
68+
});
69+
inject([FirebaseApp, AngularFireDatabase], (app_: FirebaseApp, _db: AngularFireDatabase) => {
70+
app = app_;
71+
db = _db;
72+
})();
73+
});
74+
75+
afterEach(done => {
76+
app.delete().then(done, done.fail);
77+
});
78+
79+
describe('<constructor>', () => {
80+
81+
it('should be an AngularFireDatabase type', () => {
82+
expect(db instanceof AngularFireDatabase).toEqual(true);
83+
});
84+
85+
it('should have an initialized Firebase app instance member', () => {
86+
expect(db.database.app.name).toEqual(FIREBASE_APP_NAME_TOO);
87+
});
88+
89+
it('should be pointing to the provided DB instance', () => {
90+
expect(db.database.ref().toString()).toEqual(FIREBASE_DB_NAME);
4891
});
4992
});
5093

src/database/database.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,3 +55,5 @@ export {
5555
Action,
5656
SnapshotAction
5757
} from './interfaces';
58+
59+
export { RealtimeDatabaseURL };

src/storage/storage.spec.ts

Lines changed: 53 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ import { FirebaseApp } from '@firebase/app-types';
22
import { Observable } from 'rxjs/Observable'
33
import { forkJoin } from 'rxjs/observable/forkJoin';
44
import { TestBed, inject } from '@angular/core/testing';
5-
import { FirebaseAppConfig, AngularFireModule } from 'angularfire2';
6-
import { AngularFireStorageModule, AngularFireStorage, AngularFireUploadTask } from 'angularfire2/storage';
5+
import { FirebaseAppConfig, AngularFireModule, FirebaseAppName } from 'angularfire2';
6+
import { AngularFireStorageModule, AngularFireStorage, AngularFireUploadTask, StorageBucket } from 'angularfire2/storage';
77
import { COMMON_CONFIG } from './test-config';
88

99
describe('AngularFireStorage', () => {
@@ -116,3 +116,54 @@ describe('AngularFireStorage', () => {
116116
});
117117

118118
});
119+
120+
const FIREBASE_APP_NAME_TOO = (Math.random() + 1).toString(36).substring(7);
121+
const FIREBASE_STORAGE_BUCKET = `gs://test-${(Math.random() + 1).toString(36).substring(7)}/`;
122+
123+
describe('AngularFireStorage w/options', () => {
124+
let app: FirebaseApp;
125+
let afStorage: AngularFireStorage;
126+
127+
beforeEach(() => {
128+
TestBed.configureTestingModule({
129+
imports: [
130+
AngularFireModule.initializeApp(COMMON_CONFIG),
131+
AngularFireStorageModule
132+
],
133+
providers: [
134+
{ provide: FirebaseAppName, useValue: FIREBASE_APP_NAME_TOO },
135+
{ provide: FirebaseAppConfig, useValue: COMMON_CONFIG },
136+
{ provide: StorageBucket, useValue: FIREBASE_STORAGE_BUCKET }
137+
]
138+
});
139+
inject([FirebaseApp, AngularFireStorage], (app_: FirebaseApp, _storage: AngularFireStorage) => {
140+
app = app_;
141+
afStorage = _storage;
142+
})();
143+
});
144+
145+
afterEach(done => {
146+
app.delete().then(done, done.fail);
147+
});
148+
149+
describe('<constructor>', () => {
150+
151+
it('should exist', () => {
152+
expect(afStorage instanceof AngularFireStorage).toBe(true);
153+
});
154+
155+
it('should have the Firebase storage instance', () => {
156+
expect(afStorage.storage).toBeDefined();
157+
});
158+
159+
it('should be hooked up the right app', () => {
160+
expect(afStorage.storage.app.name).toEqual(FIREBASE_APP_NAME_TOO);
161+
});
162+
163+
it('should be pointing towards a different bucket', () => {
164+
expect(afStorage.storage.ref().toString()).toEqual(FIREBASE_STORAGE_BUCKET);
165+
});
166+
167+
});
168+
169+
});

0 commit comments

Comments
 (0)