cq-websocket
Version:
A Node SDK for developing QQ chatbots based on WebSocket, which is depending on CoolQ and CQHTTP API plugin.
63 lines (47 loc) • 1.38 kB
JavaScript
// stuffs of stubbing
const { stub } = require('sinon')
const { test } = require('ava')
const { CQWebsocket } = require('../fixture/connect-success')()
const { WebsocketType } = CQWebsocket
test.cb('#isReady(): event-enabled, api-enabled, event-connected, api-connected', function (t) {
t.plan(3)
const _stub = stub()
_stub.onCall(0).callsFake(function () {
t.false(bot.isReady())
})
_stub.onCall(1).callsFake(function () {
t.true(bot.isReady())
t.end()
})
const bot = new CQWebsocket()
.on('socket.connect', _stub)
.connect()
t.false(bot.isReady())
})
test.cb('#isReady(): event-enabled, api-enabled, api-connected', function (t) {
t.plan(2)
const _stub = stub()
_stub.onCall(0).callsFake(function () {
t.false(bot.isReady())
t.end()
})
const bot = new CQWebsocket()
.on('socket.connect', _stub)
.connect(WebsocketType.API)
t.false(bot.isReady())
})
test('#isReady(): event-disabled, api-disabled', function (t) {
t.plan(1)
const bot = new CQWebsocket({ enableEvent: false, enableAPI: false })
t.true(bot.isReady())
})
test.cb('#isReady(): event-enabled, api-disabled, event-connected', function (t) {
t.plan(2)
const bot = new CQWebsocket({ enableAPI: false })
.on('socket.connect', function () {
t.true(bot.isReady())
t.end()
})
.connect()
t.false(bot.isReady())
})