mirror of
https://github.com/wassname/talk.git
synced 2026-07-18 12:40:13 +08:00
65 lines
1.7 KiB
JavaScript
65 lines
1.7 KiB
JavaScript
import {Map, fromJS} from 'immutable';
|
|
import {expect} from 'chai';
|
|
import assetsReducer from '../../../../client/coral-admin/src/reducers/assets';
|
|
|
|
describe ('assetsReducer', () => {
|
|
describe('FETCH_ASSETS_SUCCESS', () => {
|
|
it('should replace the existing assets', () => {
|
|
const action = {
|
|
type: 'FETCH_ASSETS_SUCCESS',
|
|
count: 200,
|
|
assets: [
|
|
{
|
|
id: '123',
|
|
url: 'http://test.com',
|
|
closedAt: 'tomorrow'
|
|
},
|
|
{
|
|
id: '456',
|
|
url: 'http://test2.com',
|
|
closedAt: 'thursday'
|
|
},
|
|
]
|
|
};
|
|
const store = new Map({});
|
|
const result = assetsReducer(store, action);
|
|
expect(result.getIn(['byId', '123']).toJS()).to.deep.equal({
|
|
url: 'http://test.com',
|
|
closedAt: 'tomorrow',
|
|
id: '123'
|
|
});
|
|
expect(result.getIn(['ids']).toJS()).to.deep.equal([
|
|
'123',
|
|
'456'
|
|
]);
|
|
expect(result.getIn(['count'])).to.equal(200);
|
|
});
|
|
});
|
|
|
|
describe('UPDATE_ASSET_STATE_REQUEST', () => {
|
|
it('should update the state of a particular asset', () => {
|
|
const action = {
|
|
type: 'UPDATE_ASSET_STATE_REQUEST',
|
|
id: '123',
|
|
closedAt: null
|
|
};
|
|
const store = new fromJS({
|
|
byId: {
|
|
'123': {
|
|
id: '123',
|
|
url: 'http://test.com',
|
|
closedAt: Date.now()
|
|
},
|
|
'456': {
|
|
id: '456',
|
|
url: 'http://test2.com',
|
|
closedAt: 'thursday'
|
|
}
|
|
}
|
|
});
|
|
const result = assetsReducer(store, action);
|
|
expect(result.getIn(['byId', '123', 'closedAt'])).to.equal.null;
|
|
});
|
|
});
|
|
});
|