diff options
Diffstat (limited to 'js-old/tests/unit/service/FolderResourceSpec.js')
-rw-r--r-- | js-old/tests/unit/service/FolderResourceSpec.js | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/js-old/tests/unit/service/FolderResourceSpec.js b/js-old/tests/unit/service/FolderResourceSpec.js new file mode 100644 index 000000000..f38fef7cf --- /dev/null +++ b/js-old/tests/unit/service/FolderResourceSpec.js @@ -0,0 +1,148 @@ +/** + * Nextcloud - News + * + * This file is licensed under the Affero General Public License version 3 or + * later. See the COPYING file. + * + * @author Bernhard Posselt <dev@bernhard-posselt.com> + * @copyright Bernhard Posselt 2014 + */ +describe('FolderResource', function () { + 'use strict'; + + var resource, + http; + + beforeEach(module('News', function ($provide) { + $provide.value('BASE_URL', 'base'); + })); + + afterEach(function () { + http.verifyNoOutstandingExpectation(); + http.verifyNoOutstandingRequest(); + }); + + + beforeEach(inject(function (FolderResource, $httpBackend) { + resource = FolderResource; + http = $httpBackend; + FolderResource.receive([ + {id: 1, name: 'ye'}, + {id: 2, name: 'SYE'}, + {id: 3, name: 'hore', opened: true} + ]); + })); + + + it ('should delete a folder', inject(function (FolderResource) { + FolderResource.delete('ye'); + expect(FolderResource.size()).toBe(2); + expect(FolderResource.get('ye')).toBe(undefined); + })); + + + it ('should rename a folder', inject(function (FolderResource) { + http.expectPOST('base/folders/1/rename', { + folderName: 'heho' + }).respond(200, {}); + + FolderResource.rename('ye', 'heho'); + + http.flush(); + + expect(FolderResource.get('heho').id).toBe(1); + })); + + + it ('should handle a folderrename error', inject(function (FolderResource) { + http.expectPOST('base/folders/1/rename', { + folderName: 'heho' + }).respond(400, {}); + + FolderResource.rename('ye', 'heho'); + + http.flush(); + + expect(FolderResource.get('ye').id).toBe(1); + })); + + + it ('should open a folder', inject(function (FolderResource) { + http.expectPOST('base/folders/3/open', { + folderId: 3, + open: false, + }).respond(200, {}); + + FolderResource.toggleOpen('hore'); + + http.flush(); + + expect(FolderResource.get('hore').opened).toBe(false); + })); + + + it ('should create a folder', inject(function (FolderResource) { + http.expectPOST('base/folders', { + folderName: 'hey' + }).respond(200, {}); + + FolderResource.create(' hey '); + + http.flush(); + + expect(FolderResource.size()).toBe(4); + })); + + + it ('should set a folder error message', inject(function (FolderResource) { + http.expectPOST('base/folders', { + folderName: 'hey' + }).respond(400, {message: 'carramba'}); + + FolderResource.create('hey'); + + http.flush(); + + expect(FolderResource.get('hey').error).toBe('carramba'); + })); + + + it ('should reversibly delete a folder', inject(function (FolderResource) { + http.expectDELETE('base/folders/1').respond(200, {}); + + FolderResource.reversiblyDelete('ye'); + + http.flush(); + + expect(FolderResource.get('ye').deleted).toBe(true); + })); + + + it ('should undo a delete folder', inject(function (FolderResource) { + http.expectDELETE('base/folders/1').respond(200, {}); + + FolderResource.reversiblyDelete('ye'); + + http.flush(); + + http.expectPOST('base/folders/1/restore').respond(200, {}); + + FolderResource.undoDelete('ye'); + + http.flush(); + + expect(FolderResource.get('ye').deleted).toBe(false); + })); + + + it ('should get a folder by id', inject(function (FolderResource) { + expect(FolderResource.getById(1).name).toBe('ye'); + })); + + + it ('should delete a folder and its id cache', inject( + function (FolderResource) { + FolderResource.delete('ye'); + expect(FolderResource.getById(1)).toBe(undefined); + })); +}); |