Exemplo n.º 1
0
  test('that sending when the socket is closed throws an expection', () => {
    mockConsole()
    const success = jest.fn()
    const fail = jest.fn()
    const complete = jest.fn()

    expect.assertions(4)
    return Taro.connectSocket({
      url: 'wss://localhost:8080'
    })
      .then(task => {
        task.send({
          data: 'test',
          success,
          fail,
          complete
        })
          .catch(res => {
            expect(console.error).toHaveBeenLastCalledWith(res.errMsg)
            expect(success.mock.calls.length).toBe(0)
            expect(fail.mock.calls[0][0]).toEqual(res)
            expect(complete.mock.calls[0][0]).toEqual(res)
            task.close()
          })
      })
  })
Exemplo n.º 2
0
  test('options.url should be starts with ws:// or wss://', () => {
    mockConsole()
    const url = 'http://localhost:8080'
    const success = jest.fn()
    const fail = jest.fn()
    const complete = jest.fn()

    expect.assertions(7)
    return Taro.connectSocket({
      url,
      success,
      fail,
      complete
    })
      .catch(err => {
        const expectErrMsg = `request:fail invalid url "${url}"`
        expect(success.mock.calls.length).toBe(0)
        expect(fail.mock.calls.length).toBe(1)
        expect(fail.mock.calls[0][0]).toEqual({ errMsg: expectErrMsg })
        expect(complete.mock.calls.length).toBe(1)
        expect(complete.mock.calls[0][0]).toEqual({ errMsg: expectErrMsg })
        expect(console.error).toHaveBeenCalledWith(expectErrMsg)
        expect(err.errMsg).toMatch(expectErrMsg)
      })
  })
Exemplo n.º 3
0
  test('options should be object', () => {
    mockConsole()

    expect.assertions(2)
    return Taro.connectSocket()
      .catch(err => {
        const expectErrMsg = 'connectSocket:fail parameter error: parameter should be Object instead of Undefined'
        expect(console.error).toHaveBeenNthCalledWith(1, expectErrMsg)
        expect(err.errMsg).toMatch(expectErrMsg)
      })
  })
Exemplo n.º 4
0
  test('should not keep more than 2 connection', () => {
    mockConsole()
    const success = jest.fn()
    const fail = jest.fn()
    const complete = jest.fn()

    expect.assertions(9)
    return Promise.all([
      Taro.connectSocket({ url: 'wss://localhost:8080', success })
        .then(task => {
          expect(success.mock.calls[0][0]).toEqual({ socketTaskId: 1, errMsg: 'connectSocket:ok'})
          task.close()
        }),
      Taro.connectSocket({ url: 'wss://localhost:8090', success })
        .then(task => {
          task.close()
          expect(success.mock.calls[1][0]).toEqual({ socketTaskId: 2, errMsg: 'connectSocket:ok'})
        }),
      Taro.connectSocket({
        url: 'wss://localhost:9090',
        success,
        fail,
        complete
      })
        .catch(err => {
          const expectErrMsg = `同时最多发起 2 个 socket 请求,更多请参考文档。`
          expect(success.mock.calls.length).toBe(2)
          expect(fail.mock.calls.length).toBe(1)
          expect(fail.mock.calls[0][0]).toEqual({ errMsg: expectErrMsg })
          expect(complete.mock.calls.length).toBe(1)
          expect(complete.mock.calls[0][0]).toEqual({ errMsg: expectErrMsg })
          expect(console.error).toHaveBeenCalledWith(expectErrMsg)
          expect(err.errMsg).toMatch(expectErrMsg)
        })
    ])
  })
Exemplo n.º 5
0
  test('options.url should be string', () => {
    mockConsole()
    const success = jest.fn()
    const fail = jest.fn()
    const complete = jest.fn()

    expect.assertions(7)
    return Taro.connectSocket({
      url: 1,
      success,
      fail,
      complete
    })
      .catch(err => {
        const expectErrMsg = 'connectSocket:fail parameter error: parameter.url should be String instead of Number'
        expect(success.mock.calls.length).toBe(0)
        expect(fail.mock.calls.length).toBe(1)
        expect(fail.mock.calls[0][0]).toEqual({ errMsg: expectErrMsg })
        expect(complete.mock.calls.length).toBe(1)
        expect(complete.mock.calls[0][0]).toEqual({ errMsg: expectErrMsg })
        expect(console.error).toHaveBeenCalledWith(expectErrMsg)
        expect(err.errMsg).toMatch(expectErrMsg)
      })
  })