Puppet Provider: Mock
- Repo: https://github.com/wechaty/wechaty-puppet-mock
- Support & Feedback: https://github.com/wechaty/wechaty-puppet-mock/issues
Features
- Helps to test Wechaty framework with a mock puppet.
- Can be used as a starter template for writing your own puppet provider.
Usage
Run wechaty-puppet-mock
.
- Linux
- macOS
- Windows
npm install wechaty-puppet-mock
export WECHATY_PUPPET=wechaty-puppet-mock
npm start
npm install wechaty-puppet-mock
export WECHATY_PUPPET=wechaty-puppet-mock
npm start
npm install wechaty-puppet-mock
set WECHATY_PUPPET=wechaty-puppet-mock
npm start
Mocker and Environment
import {
PuppetMock,
Mocker,
SimpleEnvironment,
} from 'wechaty-puppet-mock'
const mocker = new Mocker()
mocker.use(SimpleEnvironment())
const puppet = new PuppetMock({ mocker })
const wechaty = new Wechaty({ puppet })
wechaty.start()
// The Mocker will start perform the SimpleEnvironment...
See: SimpleEnvironment.
API Reference
Mocker
import { Wechaty } from 'wechaty'
import {
PuppetMock,
mock,
} from 'wechaty-puppet-mock'
const mocker = new mock.Mocker()
const puppet = new PuppetMock({ mocker })
const bot = new Wechaty({ puppet })
await bot.start()
mocker.scan('https://github.com/wechaty', 1)
const user = mocker.createContact()
mocker.login(user)
const contact = mocker.createContact()
const room = mocker.createRoom()
user.say('Hello').to(contact)
contact.say('World').to(user)
Helper Utilities
StateSwitch
this.state.on('pending')
this.state.on(true)
this.state.off('pending')
this.state.off(true)
await this.state.ready('on')
await this.state.ready('off')
MemoryCard
await memory.set('config', { id: 1, key: 'xxx' })
const config = await memory.get('config')
console.log(config)
// Output: { id: 1, key: 'xxx' }
Example: unit testing for math_master
game
math_master
is a Wechaty Vorpal Contrib command which is a simple game for answering math questions that asked by a Wechaty bot.
You can read the unit testing script at: https://github.com/wechaty/wechaty-vorpal-contrib/blob/master/src/contrib/math_master/math_master.spec.ts
History
Milestones for master branch:
v0.25 (July 13, 2020)
- Rename MockXXX to XXXMock for keep the consistent naming style with PuppetMock.
- Export mock namespace and move all related modules under it.
v0.22 (June 4, 2020)
Mocker Released. Mocker is a manager for controlling the behavior of the Puppet activities.
- Add MockContact, MockRoom, and MockMessage for Mockers
- Add MockEnvironment for mocking the server behaviors.
- Support Wechaty#Contact.find() from the mocker.createContacts().
- Support Wechaty#Room.find() from the mocker.createRooms().
- Support message event for talker, listener, and room of MockMessage.
v0.0.1 (Jun 27, 2018)
Initial version.
PuppetMock
is a skelton Puppet without do anything, it will make testing easy when developing Wechaty.