Awesome
PUPPET-MOCK
Picture Credit: https://softwareautotools.com/2017/03/01/mocking-explained-in-python/
Puppet Mocker & Starter Template for Wechaty, it is very useful when you:
- Want to test the Wechaty framework with a mock puppet, or
- You want to write your own Puppet implenmentation.
Then PuppetMock
will helps you a lot.
USAGE
Puppet Mock
import { Wechaty } from 'wechaty'
import { PuppetMock } from 'wechaty-puppet-mock'
const puppet = new PuppetMock()
const wechaty = new Wechaty({ puppet })
wechaty.start()
Mocker & 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')
Watchdog
MemoryCard
await memory.set('config', { id: 1, key: 'xxx' })
const config = await memory.get('config')
console.log(config)
// Output: { id: 1, key: 'xxx' }
HISTORY
master v1.18 (Mar 14, 2022)
Upgrade to Wechaty Puppet v1.18
v1.0 (Oct 29, 2021)
Release v1.0 of Puppet Mock
- v0.31: Support ES Modules
v0.25 (July 13, 2020)
- Rename
MockXXX
toXXXMock
for keep the consistent naming style withPuppetMock
. - 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
, andMockMessage
forMockers
- Add
MockEnvironment
for mocking the server behaviors. - Support
Wechaty#Contact.find()
from themocker.createContacts()
- Support
Wechaty#Room.find()
from themocker.createRooms()
- Support
message
event fortalker
,listener
, androom
ofMockMessage
v0.0.1 (Jun 27, 2018)
Initial version.
PuppetMock
is a skelton Puppet without do anything, it will make testing easy when developing Wechaty
AUTHOR
<a href="https://stackexchange.com/users/265499"> <img src="https://stackexchange.com/users/flair/265499.png" width="208" height="58" alt="profile for zixia on Stack Exchange, a network of free, community-driven Q&A sites" title="profile for zixia on Stack Exchange, a network of free, community-driven Q&A sites"> </a>COPYRIGHT & LICENSE
- Code & Docs © 2018 Huan LI <zixia@zixia.net>
- Code released under the Apache-2.0 License
- Docs released under Creative Commons