135 lines
3.6 KiB
JavaScript
135 lines
3.6 KiB
JavaScript
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",
|
|
"titleWithSerie": "Mortes saisons"
|
|
},
|
|
"44989": {
|
|
"serieDisplay": "Abel Dopeulapeul",
|
|
"titleDisplay" : "Sale temps pour mourir",
|
|
"titleWithSerie": "Abel Dopeulapeul 2: Sale temps pour mourir"
|
|
},
|
|
"58595": {
|
|
"serieDisplay": "",
|
|
"titleDisplay": "Des fourmis dans les jambes",
|
|
"titleWithSerie": "Des fourmis dans les jambes"
|
|
},
|
|
"9935": {
|
|
"serieDisplay": "Bizu",
|
|
"titleDisplay": "La croisière fantôme",
|
|
"titleWithSerie": "Bizu 5: La croisière fantôme"
|
|
},
|
|
"164": {
|
|
"serieDisplay": "Les Eaux de Mortelune",
|
|
"titleDisplay": "Vague à lames",
|
|
"titleWithSerie": "Les Eaux de Mortelune 5: Vague à lames"
|
|
},
|
|
"32043": {
|
|
"serieDisplay": "Accros de ...",
|
|
"titleDisplay": "Rap",
|
|
"titleWithSerie": "Accros de ... 2: Rap"
|
|
},
|
|
"46005": {
|
|
"serieDisplay": "Chick Bill",
|
|
"titleDisplay": "Le témoin du Rio Grande",
|
|
"titleWithSerie": "Chick Bill 23: Rap: Le témoin du Rio Grande"
|
|
},
|
|
"15875": {
|
|
"serieDisplay": "Donc, Jean",
|
|
"titleDisplay": "...donc, Jean.",
|
|
"titleWithSerie": "...donc, Jean."
|
|
},
|
|
"84448": {
|
|
"serieDisplay": "Black Crow",
|
|
"titleDisplay": "Black Crow raconte L'Hermione - La Conspiration pour la liberté",
|
|
"titleWithSerie" : "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);
|
|
expect(album.titleWithSerie).toBe(expectedData[key].titleWithSerie);
|
|
|
|
}
|
|
|
|
})
|
|
});
|