Add server reducer tests
This commit is contained in:
parent
164c47d1a6
commit
294114028a
128
client/src/js/__tests__/reducer-servers.test.js
Normal file
128
client/src/js/__tests__/reducer-servers.test.js
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
import Immutable from 'immutable';
|
||||||
|
import reducer from '../reducers/servers';
|
||||||
|
import * as actions from '../actions';
|
||||||
|
import { connect } from '../actions/server';
|
||||||
|
|
||||||
|
describe('reducers/servers', () => {
|
||||||
|
it('adds the server on CONNECT', () => {
|
||||||
|
let state = reducer(undefined, connect('127.0.0.1:1337', 'nick', {}));
|
||||||
|
|
||||||
|
expect(state.toJS()).toEqual({
|
||||||
|
'127.0.0.1': {
|
||||||
|
connected: false,
|
||||||
|
name: '127.0.0.1',
|
||||||
|
nick: 'nick'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
state = reducer(state, connect('127.0.0.1:1337', 'nick', {}));
|
||||||
|
|
||||||
|
expect(state.toJS()).toEqual({
|
||||||
|
'127.0.0.1': {
|
||||||
|
connected: false,
|
||||||
|
name: '127.0.0.1',
|
||||||
|
nick: 'nick'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
state = reducer(state, connect('127.0.0.2:1337', 'nick', {
|
||||||
|
name: 'srv'
|
||||||
|
}));
|
||||||
|
|
||||||
|
expect(state.toJS()).toEqual({
|
||||||
|
'127.0.0.1': {
|
||||||
|
connected: false,
|
||||||
|
name: '127.0.0.1',
|
||||||
|
nick: 'nick'
|
||||||
|
},
|
||||||
|
'127.0.0.2': {
|
||||||
|
connected: false,
|
||||||
|
name: 'srv',
|
||||||
|
nick: 'nick'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('removes the server on DISCONNECT', () => {
|
||||||
|
let state = Immutable.fromJS({
|
||||||
|
srv: {},
|
||||||
|
srv2: {}
|
||||||
|
});
|
||||||
|
|
||||||
|
state = reducer(state, {
|
||||||
|
type: actions.DISCONNECT,
|
||||||
|
server: 'srv2'
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(state.toJS()).toEqual({
|
||||||
|
srv: {}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('updates the nick on SOCKET_NICK', () => {
|
||||||
|
let state = reducer(undefined, connect('127.0.0.1:1337', 'nick', {}));
|
||||||
|
state = reducer(state, {
|
||||||
|
type: actions.SOCKET_NICK,
|
||||||
|
server: '127.0.0.1',
|
||||||
|
old: 'nick',
|
||||||
|
new: 'nick2'
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(state.toJS()).toEqual({
|
||||||
|
'127.0.0.1': {
|
||||||
|
connected: false,
|
||||||
|
name: '127.0.0.1',
|
||||||
|
nick: 'nick2'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('adds the servers on SOCKET_SERVERS', () => {
|
||||||
|
let state = reducer(undefined, {
|
||||||
|
type: 'SOCKET_SERVERS',
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
host: '127.0.0.1',
|
||||||
|
name: 'stuff',
|
||||||
|
nick: 'nick',
|
||||||
|
connected: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
host: '127.0.0.2',
|
||||||
|
name: 'stuffz',
|
||||||
|
nick: 'nick2',
|
||||||
|
connected: false
|
||||||
|
},
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(state.toJS()).toEqual({
|
||||||
|
'127.0.0.1': {
|
||||||
|
name: 'stuff',
|
||||||
|
nick: 'nick',
|
||||||
|
connected: true
|
||||||
|
},
|
||||||
|
'127.0.0.2': {
|
||||||
|
name: 'stuffz',
|
||||||
|
nick: 'nick2',
|
||||||
|
connected: false
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('updates connection status on SOCKET_CONNECTION_UPDATE', () => {
|
||||||
|
let state = reducer(undefined, connect('127.0.0.1:1337', 'nick', {}));
|
||||||
|
state = reducer(state, {
|
||||||
|
type: actions.SOCKET_CONNECTION_UPDATE,
|
||||||
|
'127.0.0.1': true
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(state.toJS()).toEqual({
|
||||||
|
'127.0.0.1': {
|
||||||
|
name: '127.0.0.1',
|
||||||
|
nick: 'nick',
|
||||||
|
connected: true
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
@ -1,5 +1,4 @@
|
|||||||
import { Map, Record } from 'immutable';
|
import { Map, Record } from 'immutable';
|
||||||
import forEach from 'lodash/forEach';
|
|
||||||
import createReducer from '../util/createReducer';
|
import createReducer from '../util/createReducer';
|
||||||
import * as actions from '../actions';
|
import * as actions from '../actions';
|
||||||
|
|
||||||
@ -48,10 +47,12 @@ export default createReducer(Map(), {
|
|||||||
},
|
},
|
||||||
|
|
||||||
[actions.SOCKET_CONNECTION_UPDATE](state, action) {
|
[actions.SOCKET_CONNECTION_UPDATE](state, action) {
|
||||||
return state.withMutations(s => forEach(action, (connected, server) => {
|
return state.withMutations(s =>
|
||||||
if (s.has(server)) {
|
Object.keys(action).forEach(server => {
|
||||||
s.setIn([server, 'connected'], connected);
|
if (s.has(server)) {
|
||||||
}
|
s.setIn([server, 'connected'], action[server]);
|
||||||
}));
|
}
|
||||||
|
})
|
||||||
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user