Refactors the way music folders are handled

- Second part of the fix for tsquillario/Jamstash#212 - Fixes getIndexes
- Moved loading / saving / deleting the selected music folder to persistence-service.
- Moved the request to get all the music folders to subsonic-service.
- Moved SelectedMusicFolder to subsonic-controller's scope from the rootScope
- Fixes a bug where we would send a '-1' music folder id to Subsonic, causing an SQL error when choosing "All Folders" and refreshing the Artists list.
This commit is contained in:
Hyzual 2015-05-21 00:09:26 +02:00
parent 0bc1cea108
commit e43c4c7655
8 changed files with 294 additions and 71 deletions

View file

@ -154,6 +154,48 @@ describe("Persistence service", function() {
expect(locker.forget).toHaveBeenCalledWith('Volume');
});
describe("getSelectedMusicFolder() -", function() {
it("Given a previously saved selected music folder in local storage, when I get the saved music folder, then an object containing the id and name of the selected music folder will be returned", function() {
fakeStorage = {
'MusicFolders': {
'id': 74,
'name': 'kooliman unhurled'
}
};
var selectedMusicFolder = persistence.getSelectedMusicFolder();
expect(locker.get).toHaveBeenCalledWith('MusicFolders');
expect(selectedMusicFolder).toEqual({
'id': 74,
'name': 'kooliman unhurled'
});
});
it("Given that no selected music folder was previously saved in local storage, when I get the saved music folder, then undefined will be returned", function() {
var selectedMusicFolder = persistence.getSelectedMusicFolder();
expect(locker.get).toHaveBeenCalledWith('MusicFolders');
expect(selectedMusicFolder).toBeUndefined();
});
});
it("saveSelectedMusicFolder() - given an object containing the id and name of the selected music folder, when I save the music folder, then it will be set in local storage", function() {
persistence.saveSelectedMusicFolder({
id: 41,
name: 'parlormaid carcinolytic'
});
expect(locker.put).toHaveBeenCalledWith('MusicFolders', {
id: 41,
name: 'parlormaid carcinolytic'
});
});
it("deleteSelectedMusicFolder() - when I delete the selected music folder, then it will be erased from local storage", function() {
persistence.deleteSelectedMusicFolder();
expect(locker.forget).toHaveBeenCalledWith('MusicFolders');
});
describe("getSettings() -", function() {
beforeEach(function() {
spyOn(persistence, 'upgradeVersion');