describe('Service: albumService', function() { beforeEach(module('satbd.satellite.bar.services')); var $httpBackend,albumService; var albums = readJSON('test/data/albums.json') var albumsByIDs = {}; for ( var i = 0; i < albums.length; i++) { albumsByIDs[albums[i].ID] = albums; } beforeEach(inject(function($injector) { $httpBackend = $injector.get('$httpBackend'); for ( var i = 0; i < albums.length; i++) { $httpBackend.when('GET','/api/albums/'+ albums[i].ID).respond(200,albums[i]); } $httpBackend.when('GET','/api/albums/1234').respond(404, 'Error not found'); albumService = $injector.get('albumService'); })); it('can get an album data', function() { for ( var i = 0; i < albums.length; i++) { var album, err; albumService.get(albums[i].ID).then(function(data) { album = data; }).catch( function() { err = 'Could not get album'; }); $httpBackend.flush(); expect(album.ID).toBe(albums[i].ID); expect(err).toBe(undefined); } var album = undefined , err = undefined; albumService.get(1234).then(function(data) { album = data; }).catch( function() { err = 'Could not get album'; }); $httpBackend.flush(); expect(album).toBe(undefined) expect(err).toBe('Could not get album'); }); it('renames non-utf-8 field to utf-8', function() { for ( var i = 0; i < albums.length; i++) { var album; albumService.get(albums[i].ID) .then(function(data) { album = data; }) $httpBackend.flush(); expect(album.serie).toBe(albums[i].série); expect(album.série).toBe(undefined); expect(album.editeur).toBe(albums[i].éditeur); expect(album.éditeur).toBe(undefined); } }); it('gives display names', function() { var expectedData = { "8179": { "serieDisplay": "Mortes saisons", "titleDisplay": "Mortes saisons", }, "44989": { "serieDisplay": "Abel Dopeulapeul 2", "titleDisplay" : "Sale temps pour mourir", }, "58595": { "serieDisplay": "", "titleDisplay": "Des fourmis dans les jambes", }, "9935": { "serieDisplay": "Bizu 5", "titleDisplay": "La croisière fantôme", }, "164": { "serieDisplay": "Les Eaux de Mortelune 5", "titleDisplay": "Vague à lames", }, "32043": { "serieDisplay": "Accros de ... 2", "titleDisplay": "Rap", }, "46005": { "serieDisplay": "Chick Bill 23", "titleDisplay": "Le témoin du Rio Grande", }, "15875": { "serieDisplay": "Donc, Jean", "titleDisplay": "...donc, Jean.", }, "84448": { "serieDisplay": "Black Crow", "titleDisplay": "Black Crow raconte L'Hermione - La Conspiration pour la liberté", }, }; for ( var key in expectedData) { var album, err; albumService.get(key) .then(function (data) { album = data; }) .catch(function() { err = 'Could not fetch data'; }); $httpBackend.flush(); expect(album).not.toBe(undefined); expect(err).toBe(undefined); expect(album.serieDisplay).toBe(expectedData[key].serieDisplay); expect(album.titleDisplay).toBe(expectedData[key].titleDisplay); } }) });