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)})