Skip to content

Commit b0d4668

Browse files
committed
feat(storage): Add tests
1 parent 0ac2d10 commit b0d4668

File tree

10 files changed

+78
-4
lines changed

10 files changed

+78
-4
lines changed

karma.conf.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ module.exports = function(config) {
3131
'dist/packages-dist/bundles/auth.umd.{js,map}',
3232
'dist/packages-dist/bundles/database.umd.{js,map}',
3333
'dist/packages-dist/bundles/firestore.umd.{js,map}',
34+
'dist/packages-dist/bundles/storage.umd.{js,map}',
3435
'dist/packages-dist/bundles/database-deprecated.umd.{js,map}',
3536
'dist/packages-dist/bundles/test.umd.{js,map}',
3637
],

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
"test": "npm run build && karma start --single-run",
88
"test:watch": "concurrently \"npm run build:watch\" \"npm run delayed_karma\"",
99
"test:debug": "npm run build && karma start",
10+
"karma": "karma start",
1011
"test:universal": "npm run build && cp -R dist/packages-dist test/universal-test/node_modules/angularfire2 && cd test/universal-test && npm run prerender",
1112
"delayed_karma": "sleep 10 && karma start",
1213
"build": "rm -rf dist && node tools/build.js",

src/root.spec.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ export * from './packages-dist/database/list/changes.spec';
1111
export * from './packages-dist/database/list/snapshot-changes.spec';
1212
export * from './packages-dist/database/list/state-changes.spec';
1313
export * from './packages-dist/database/list/audit-trail.spec';
14+
export * from './packages-dist/storage/storage.spec';
1415

1516
// export * from './packages-dist/database-deprecated/firebase_list_factory.spec';
1617
// export * from './packages-dist/database-deprecated/firebase_object_factory.spec';

src/storage/index.spec.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from './storage.spec';

src/storage/observable/fromTask.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,12 @@ import 'firebase/storage';
33
import { Observable } from 'rxjs/Observable';
44

55
export function fromTask(task: storage.UploadTask) {
6-
return new Observable<storage.UploadTaskSnapshot>(subscriber => {
7-
task.on('state_changed', subscriber);
6+
return new Observable<storage.UploadTaskSnapshot | undefined>(subscriber => {
7+
task.on('state_changed',
8+
(snap: storage.UploadTaskSnapshot) => subscriber.next(snap),
9+
e => subscriber.error(e),
10+
() => subscriber.complete()
11+
);
812
return { unsubscribe: task.cancel };
913
});
1014
}

src/storage/ref.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { AngularFireUploadTask } from './task';
33

44
export class AngularFireStorageRef {
55
constructor(public ref: storage.Reference) { }
6-
put(data: any, metadata: storage.UploadMetadata | undefined) {
6+
put(data: any, metadata?: storage.UploadMetadata) {
77
const task = this.ref.put(data, metadata);
88
return new AngularFireUploadTask(task);
99
}

src/storage/storage.spec.ts

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
import * as firebase from 'firebase/app';
2+
import { Observable } from 'rxjs/Observable'
3+
import { Subject } from 'rxjs/Subject'
4+
import { TestBed, inject } from '@angular/core/testing';
5+
import { FirebaseApp, FirebaseAppConfig, AngularFireModule } from 'angularfire2';
6+
import { AngularFireStorageModule, AngularFireStorage, AngularFireUploadTask, AngularFireStorageRef } from 'angularfire2/storage';
7+
import { COMMON_CONFIG } from './test-config';
8+
9+
console.log(AngularFireStorageModule);
10+
11+
fdescribe('AngularFireStorage', () => {
12+
let app: firebase.app.App;
13+
let afStorage: AngularFireStorage;
14+
15+
beforeEach(() => {
16+
TestBed.configureTestingModule({
17+
imports: [
18+
AngularFireModule.initializeApp(COMMON_CONFIG),
19+
AngularFireStorageModule
20+
]
21+
});
22+
inject([FirebaseApp, AngularFireStorage], (app_: FirebaseApp, _storage: AngularFireStorage) => {
23+
app = app_;
24+
afStorage = _storage;
25+
})();
26+
});
27+
28+
afterEach(done => {
29+
app.delete().then(done, done.fail);
30+
});
31+
32+
it('should exist', () => {
33+
expect(afStorage instanceof AngularFireStorage).toBe(true);
34+
});
35+
36+
it('should have the Firebase storage instance', () => {
37+
expect(afStorage.storage).toBeDefined();
38+
});
39+
40+
describe('AngularFireUploadTask', () => {
41+
42+
it('should upload a file', (done) => {
43+
const data = { angular: "fire" };
44+
const blob = new Blob([JSON.stringify(data)], { type : 'application/json' });
45+
const task = afStorage.upload('af.json', blob);
46+
const sub = task.snapshotChanges()
47+
.subscribe(
48+
snap => { console.log(snap); expect(snap).toBeDefined() },
49+
e => { done.fail(); },
50+
done);
51+
52+
});
53+
54+
});
55+
56+
});

src/storage/storage.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ export class AngularFireStorage {
1717
return new AngularFireStorageRef(this.storage.ref(path));
1818
}
1919

20-
upload(pathOrRef: string, data: any, metadata: storage.UploadMetadata | undefined) {
20+
upload(pathOrRef: string, data: any, metadata?: storage.UploadMetadata) {
2121
const storageRef = this.storage.ref(pathOrRef);
2222
const ref = new AngularFireStorageRef(storageRef);
2323
return ref.put(data, metadata);

src/storage/test-config.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
2+
export const COMMON_CONFIG = {
3+
apiKey: "AIzaSyAcDzMU79ou1QE5OvZm4JfpfkM8f2gwPno",
4+
authDomain: "day-of.firebaseapp.com",
5+
databaseURL: "https://day-of.firebaseio.com",
6+
projectId: "day-of",
7+
storageBucket: "day-of.appspot.com",
8+
messagingSenderId: "131965932953"
9+
};

src/tsconfig.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
"angularfire2/auth": ["./auth"],
1515
"angularfire2/database": ["./database"],
1616
"angularfire2/firestore": ["./firestore"],
17+
"angularfire2/storage": ["./storage"],
1718
"angularfire2/database-deprecated": ["./database-deprecated"]
1819
},
1920
"rootDir": ".",

0 commit comments

Comments
 (0)