Skip to content

Commit cfbea4c

Browse files
committed
feat(storage): introduce failing tests to indentify problem
1 parent a3f7386 commit cfbea4c

File tree

5 files changed

+28
-16
lines changed

5 files changed

+28
-16
lines changed

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "angularfire2",
3-
"version": "5.0.0-rc.5",
3+
"version": "5.0.0-rc.5-next",
44
"description": "The official library of Firebase and Angular.",
55
"private": true,
66
"scripts": {
@@ -35,7 +35,7 @@
3535
"@angular/platform-browser": "^5.0.0",
3636
"@angular/platform-browser-dynamic": "^5.0.0",
3737
"firebase": "^4.5.0",
38-
"rxjs": "^5.5.2",
38+
"rxjs": "^5.5.4",
3939
"zone.js": "^0.8.0"
4040
},
4141
"devDependencies": {

src/storage/storage.spec.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,18 @@ describe('AngularFireStorage', () => {
5151
});
5252
});
5353

54+
it('should upload a file and observe the download url', (done) => {
55+
const data = { angular: "fire" };
56+
const blob = new Blob([JSON.stringify(data)], { type : 'application/json' });
57+
const ref = afStorage.ref('afs.json');
58+
const task = ref.put(blob);
59+
const url$ = task.downloadURL();
60+
url$.subscribe(
61+
url => { console.log(url); expect(url).toBeDefined(); },
62+
e => { done.fail(); },
63+
() => { ref.delete().subscribe(done, done.fail); }
64+
);
65+
});
5466
});
5567

5668
describe('reference', () => {

src/storage/task.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { storage } from 'firebase/app';
22
import { fromTask } from './observable/fromTask';
33
import { Observable } from 'rxjs/Observable';
4-
import { map, filter } from 'rxjs/operators';
4+
import { map, filter, shareReplay } from 'rxjs/operators';
55

66
export interface AngularFireUploadTask {
77
snapshotChanges(): Observable<storage.UploadTaskSnapshot | undefined>;
@@ -15,6 +15,7 @@ export interface AngularFireUploadTask {
1515
}
1616

1717
export function createUploadTask(task: storage.UploadTask): AngularFireUploadTask {
18+
const inner$ = fromTask(task).pipe(shareReplay());
1819
return {
1920
pause() { return task.pause(); },
2021
cancel() { return task.cancel(); },
@@ -23,17 +24,15 @@ export function createUploadTask(task: storage.UploadTask): AngularFireUploadTas
2324
catch(onRejected: (a: Error) => any) {
2425
return task.catch(onRejected);
2526
},
26-
snapshotChanges() { return fromTask(task); },
27+
snapshotChanges() { return inner$; },
2728
percentageChanges() {
28-
return fromTask(task).pipe(
29+
return inner$.pipe(
2930
filter(s => s !== undefined),
30-
map(s => {
31-
return s!.bytesTransferred / s!.totalBytes * 100;
32-
})
31+
map(s => s!.bytesTransferred / s!.totalBytes * 100)
3332
);
3433
},
3534
downloadURL() {
36-
return fromTask(task).pipe(
35+
return inner$.pipe(
3736
filter(s => s !== undefined),
3837
filter(s => s!.bytesTransferred === s!.totalBytes),
3938
map(s => s!.downloadURL)

tools/build.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ const GLOBALS = {
2222
'rxjs/operator/combineLatest': 'Rx.Observable.prototype',
2323
'rxjs/operator/merge': 'Rx.Observable.prototype',
2424
'rxjs/operator/map': 'Rx.Observable.prototype',
25+
'rxjs/operators': 'Rx.Observable.prototype',
2526
'rxjs/observable/of': 'Rx.Observable',
2627
'rxjs/observable/forkJoin': 'Rx.Observable',
2728
'rxjs/operator/auditTime': 'Rx.Observable.prototype',

yarn.lock

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3390,11 +3390,11 @@ [email protected]:
33903390
version "2.3.24"
33913391
resolved "https://registry.yarnpkg.com/rx/-/rx-2.3.24.tgz#14f950a4217d7e35daa71bbcbe58eff68ea4b2b7"
33923392

3393-
rxjs@^5.5.2:
3394-
version "5.5.2"
3395-
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.2.tgz#28d403f0071121967f18ad665563255d54236ac3"
3393+
rxjs@^5.5.4:
3394+
version "5.5.4"
3395+
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.4.tgz#66a466acb21270b5f441645a1141f95fcae10ee6"
33963396
dependencies:
3397-
symbol-observable "^1.0.1"
3397+
symbol-observable "1.0.1"
33983398

33993399
safe-buffer@^5.0.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
34003400
version "5.1.1"
@@ -3688,9 +3688,9 @@ supports-color@^4.0.0:
36883688
dependencies:
36893689
has-flag "^2.0.0"
36903690

3691-
symbol-observable@^1.0.1:
3692-
version "1.0.4"
3693-
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d"
3691+
3692+
version "1.0.1"
3693+
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4"
36943694

36953695
systemjs-builder@^0.15.7:
36963696
version "0.15.36"

0 commit comments

Comments
 (0)