mirror of
https://github.com/koel/koel
synced 2024-12-22 02:23:14 +00:00
103 lines
3.2 KiB
JavaScript
103 lines
3.2 KiB
JavaScript
require('chai').should();
|
||
import _ from 'lodash';
|
||
|
||
import albumStore from '../../stores/album';
|
||
import artistStore from '../../stores/artist';
|
||
import { default as artists, singleAlbum, singleSong } from '../blobs/media';
|
||
|
||
describe('stores/album', () => {
|
||
beforeEach(() => albumStore.init(_.cloneDeep(artists)));
|
||
|
||
afterEach(() => albumStore.state.albums = []);
|
||
|
||
describe('#init', () => {
|
||
it('correctly gathers albums', () => {
|
||
albumStore.state.albums.length.should.equal(7);
|
||
});
|
||
|
||
it('correctly sets albums length', () => {
|
||
albumStore.state.albums[0].length.should.equal(259.92);
|
||
});
|
||
|
||
it('correctly sets album artists', () => {
|
||
albumStore.state.albums[0].artist.id.should.equal(1);
|
||
});
|
||
});
|
||
|
||
describe('#all', () => {
|
||
it('correctly returns all songs', () => {
|
||
albumStore.all.length.should.equal(7);
|
||
});
|
||
});
|
||
|
||
describe('#getLength', () => {
|
||
it('correctly calculates an album’s length', () => {
|
||
albumStore.getLength(albumStore.state.albums[6]);
|
||
albumStore.state.albums[6].length.should.equal(1940.42); // I'm sorry…
|
||
});
|
||
});
|
||
|
||
describe('#append', () => {
|
||
beforeEach(() => {
|
||
albumStore.append(_.cloneDeep(singleAlbum));
|
||
});
|
||
|
||
it('correctly appends a new album into the state', () => {
|
||
_.last(albumStore.state.albums).id.should.equal(9999);
|
||
});
|
||
|
||
it('correctly recalculates the length', () => {
|
||
_.last(albumStore.state.albums).length.should.equal(300);
|
||
});
|
||
|
||
it('correctly recalculates the play count', () => {
|
||
_.last(albumStore.state.albums).playCount.should.equal(11);
|
||
});
|
||
});
|
||
|
||
describe('#remove', () => {
|
||
beforeEach(() => {
|
||
albumStore.remove(albumStore.state.albums[0]); // ID 1193
|
||
});
|
||
|
||
it('correctly removes an album', () => {
|
||
albumStore.state.albums.length.should.equal(6);
|
||
});
|
||
});
|
||
|
||
describe('#addSongsIntoAlbum', () => {
|
||
beforeEach(() => {
|
||
albumStore.addSongsIntoAlbum(albumStore.state.albums[0], _.cloneDeep(singleSong));
|
||
});
|
||
|
||
it('correctly adds a song into an album', () => {
|
||
albumStore.state.albums[0].songs.length.should.equal(2);
|
||
});
|
||
|
||
it('correctly recalculates the play count', () => {
|
||
albumStore.state.albums[0].playCount.should.equal(4);
|
||
});
|
||
|
||
it ('correctly recalculates album length', () => {
|
||
albumStore.state.albums[0].length.should.equal(359.92);
|
||
});
|
||
});
|
||
|
||
describe('#removeSongsFromAlbum', () => {
|
||
beforeEach(() => {
|
||
albumStore.removeSongsFromAlbum(albumStore.state.albums[0], albumStore.state.albums[0].songs[0]);
|
||
});
|
||
|
||
it('correctly removes a song from an album', () => {
|
||
albumStore.state.albums[0].songs.length.should.equal(0);
|
||
});
|
||
|
||
it('correctly recalculates the play count', () => {
|
||
albumStore.state.albums[0].playCount.should.equal(0);
|
||
});
|
||
|
||
it('correctly recalculates the length', () => {
|
||
albumStore.state.albums[0].length.should.equal(0);
|
||
});
|
||
});
|
||
});
|