72 lines
1.9 KiB
TypeScript
72 lines
1.9 KiB
TypeScript
import {
|
|
STATUS_HOVER_CARD_OPEN,
|
|
STATUS_HOVER_CARD_CLOSE,
|
|
STATUS_HOVER_CARD_UPDATE,
|
|
} from 'soapbox/actions/status-hover-card';
|
|
|
|
import reducer, { ReducerRecord } from '../status-hover-card';
|
|
|
|
describe(STATUS_HOVER_CARD_OPEN, () => {
|
|
it('sets the ref and statusId', () => {
|
|
const ref = { current: document.createElement('div') };
|
|
|
|
const action = {
|
|
type: STATUS_HOVER_CARD_OPEN,
|
|
ref,
|
|
statusId: '1234',
|
|
};
|
|
|
|
const result = reducer(undefined, action);
|
|
expect(result.ref).toBe(ref);
|
|
expect(result.statusId).toBe('1234');
|
|
});
|
|
});
|
|
|
|
describe(STATUS_HOVER_CARD_CLOSE, () => {
|
|
it('flushes the state', () => {
|
|
const state = ReducerRecord({
|
|
ref: { current: document.createElement('div') },
|
|
statusId: '1234',
|
|
});
|
|
|
|
const action = { type: STATUS_HOVER_CARD_CLOSE };
|
|
|
|
const result = reducer(state, action);
|
|
expect(result.ref).toBe(null);
|
|
expect(result.statusId).toBe('');
|
|
});
|
|
|
|
it('leaves the state alone if hovered', () => {
|
|
const state = ReducerRecord({
|
|
ref: { current: document.createElement('div') },
|
|
statusId: '1234',
|
|
hovered: true,
|
|
});
|
|
|
|
const action = { type: STATUS_HOVER_CARD_CLOSE };
|
|
const result = reducer(state, action);
|
|
expect(result).toEqual(state);
|
|
});
|
|
|
|
it('action.force flushes the state even if hovered', () => {
|
|
const state = ReducerRecord({
|
|
ref: { current: document.createElement('div') },
|
|
statusId: '1234',
|
|
hovered: true,
|
|
});
|
|
|
|
const action = { type: STATUS_HOVER_CARD_CLOSE, force: true };
|
|
const result = reducer(state, action);
|
|
expect(result.ref).toBe(null);
|
|
expect(result.statusId).toBe('');
|
|
});
|
|
});
|
|
|
|
describe(STATUS_HOVER_CARD_UPDATE, () => {
|
|
it('sets hovered', () => {
|
|
const state = ReducerRecord();
|
|
const action = { type: STATUS_HOVER_CARD_UPDATE };
|
|
const result = reducer(state, action);
|
|
expect(result.hovered).toBe(true);
|
|
});
|
|
});
|