From 9428913900b698a58932f260b81ee2d4cd82425b Mon Sep 17 00:00:00 2001 From: Cilibiu Bogdan Date: Mon, 18 Dec 2017 16:19:31 +0200 Subject: [PATCH] ensure parameter node id is a folder instance (#166) --- src/app/components/files/files.component.spec.ts | 13 ++++++++++++- src/app/components/files/files.component.ts | 8 +++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/app/components/files/files.component.spec.ts b/src/app/components/files/files.component.spec.ts index 266be3433..884ee1a83 100644 --- a/src/app/components/files/files.component.spec.ts +++ b/src/app/components/files/files.component.spec.ts @@ -77,7 +77,7 @@ describe('FilesComponent', () => { })); beforeEach(() => { - node = { id: 'node-id' }; + node = { id: 'node-id', isFolder: true }; page = { list: { entries: ['a', 'b', 'c'], @@ -134,6 +134,17 @@ describe('FilesComponent', () => { expect(component.onFetchError).toHaveBeenCalled(); }); + + it('if should navigate to parent if node is not a folder', () => { + node.isFolder = false; + node.parentId = 'parent-id'; + spyOn(component, 'fetchNode').and.returnValue(Observable.of(node)); + spyOn(router, 'navigate'); + + fixture.detectChanges(); + + expect(router.navigate).toHaveBeenCalledWith([ '/personal-files', 'parent-id' ]); + }); }); describe('refresh on events', () => { diff --git a/src/app/components/files/files.component.ts b/src/app/components/files/files.component.ts index 8d3d7e729..96926da40 100644 --- a/src/app/components/files/files.component.ts +++ b/src/app/components/files/files.component.ts @@ -76,7 +76,13 @@ export class FilesComponent extends PageComponent implements OnInit, OnDestroy { this.isLoading = true; this.fetchNode(nodeId) - .do((node) => this.updateCurrentNode(node)) + .do((node) => { + if (node.isFolder) { + this.updateCurrentNode(node); + } else { + this.router.navigate(['/personal-files', node.parentId]); + } + }) .flatMap((node) => this.fetchNodes(node.id)) .subscribe( (page) => {