mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-06-12 09:04:53 -07:00
102 lines
3.9 KiB
TypeScript
102 lines
3.9 KiB
TypeScript
import { Selectors } from './server.selectors';
|
|
import { ServerState } from './server.interfaces';
|
|
import {
|
|
makeDeckList,
|
|
makeReplayMatch,
|
|
makeServerState,
|
|
makeUser,
|
|
} from './__mocks__/server-fixtures';
|
|
import { StatusEnum } from 'types';
|
|
|
|
function rootState(server: ServerState) {
|
|
return { server };
|
|
}
|
|
|
|
describe('Selectors', () => {
|
|
it('getInitialized → returns initialized flag', () => {
|
|
const state = makeServerState({ initialized: true });
|
|
expect(Selectors.getInitialized(rootState(state))).toBe(true);
|
|
});
|
|
|
|
it('getMessage → returns info.message', () => {
|
|
const state = makeServerState({ info: { message: 'Welcome!', name: null, version: null } });
|
|
expect(Selectors.getMessage(rootState(state))).toBe('Welcome!');
|
|
});
|
|
|
|
it('getName → returns info.name', () => {
|
|
const state = makeServerState({ info: { message: null, name: 'Servatrice', version: null } });
|
|
expect(Selectors.getName(rootState(state))).toBe('Servatrice');
|
|
});
|
|
|
|
it('getVersion → returns info.version', () => {
|
|
const state = makeServerState({ info: { message: null, name: null, version: '2.9.0' } });
|
|
expect(Selectors.getVersion(rootState(state))).toBe('2.9.0');
|
|
});
|
|
|
|
it('getDescription → returns status.description', () => {
|
|
const state = makeServerState({ status: { connectionAttemptMade: false, state: StatusEnum.CONNECTED, description: 'ok' } });
|
|
expect(Selectors.getDescription(rootState(state))).toBe('ok');
|
|
});
|
|
|
|
it('getState → returns status.state', () => {
|
|
const state = makeServerState({ status: { connectionAttemptMade: false, state: StatusEnum.LOGGED_IN, description: null } });
|
|
expect(Selectors.getState(rootState(state))).toBe(StatusEnum.LOGGED_IN);
|
|
});
|
|
|
|
it('getConnectionAttemptMade → returns status.connectionAttemptMade', () => {
|
|
const state = makeServerState({ status: { connectionAttemptMade: true, state: StatusEnum.DISCONNECTED, description: null } });
|
|
expect(Selectors.getConnectionAttemptMade(rootState(state))).toBe(true);
|
|
});
|
|
|
|
it('getUser → returns user', () => {
|
|
const user = makeUser({ name: 'Alice' });
|
|
const state = makeServerState({ user });
|
|
expect(Selectors.getUser(rootState(state))).toBe(user);
|
|
});
|
|
|
|
it('getUsers → returns users array', () => {
|
|
const users = [makeUser(), makeUser({ name: 'Bob' })];
|
|
const state = makeServerState({ users });
|
|
expect(Selectors.getUsers(rootState(state))).toBe(users);
|
|
});
|
|
|
|
it('getLogs → returns logs object', () => {
|
|
const logs = { room: [], game: [], chat: [] };
|
|
const state = makeServerState({ logs });
|
|
expect(Selectors.getLogs(rootState(state))).toBe(logs);
|
|
});
|
|
|
|
it('getBuddyList → returns buddyList', () => {
|
|
const buddyList = [makeUser({ name: 'Carol' })];
|
|
const state = makeServerState({ buddyList });
|
|
expect(Selectors.getBuddyList(rootState(state))).toBe(buddyList);
|
|
});
|
|
|
|
it('getIgnoreList → returns ignoreList', () => {
|
|
const ignoreList = [makeUser({ name: 'Dave' })];
|
|
const state = makeServerState({ ignoreList });
|
|
expect(Selectors.getIgnoreList(rootState(state))).toBe(ignoreList);
|
|
});
|
|
|
|
it('getReplays → returns replays', () => {
|
|
const replays = [makeReplayMatch()];
|
|
const state = makeServerState({ replays });
|
|
expect(Selectors.getReplays(rootState(state))).toBe(replays);
|
|
});
|
|
|
|
it('getBackendDecks → returns backendDecks', () => {
|
|
const backendDecks = makeDeckList();
|
|
const state = makeServerState({ backendDecks });
|
|
expect(Selectors.getBackendDecks(rootState(state))).toBe(backendDecks);
|
|
});
|
|
|
|
it('getBackendDecks → returns null when not set', () => {
|
|
const state = makeServerState({ backendDecks: null });
|
|
expect(Selectors.getBackendDecks(rootState(state))).toBeNull();
|
|
});
|
|
|
|
it('getRegistrationError → returns registrationError', () => {
|
|
const state = makeServerState({ registrationError: 'bad input' });
|
|
expect(Selectors.getRegistrationError(rootState(state))).toBe('bad input');
|
|
});
|
|
});
|