export const sendActionToServer = (action: Action<any>):Promise<any> => { const pathname = mockable(() => location.pathname) const requester = mockable(() => jsonRequest) const url_token = pathname.split('/')[3] if (isType(action, createStickyAction)) { return requester({uri: '/api/stickies', method: 'POST', body: combine(action.payload, {url_token})}) } if (isType(action, interactionFinishedStickyAction)) { const sticky = getState().stickies.get(action.payload.uuid) const command = { x: sticky.x, y: sticky.y, uuid: action.payload.uuid, url_token, body: sticky.body } return requester({uri: '/api/stickies', method: 'PUT', body: command}) } console.error('Warning: Unhandled persistence action: ', action.type) return Promise.resolve() }
return waitForPromises().then(() => { expect(jsonRequestStub.lastCall.args[0].body).to.eql(combine(sticky, {url_token})) })
const cloneAction = <T>(action: Action<T>): {} & Action<T> => combine({}, {type: action.type, payload: combine({}, action.payload)})