Navel Pondering Mantra

    wechaty-puppet-mock
    TypeScript icon, indicating that this package has built-in type declarations

    1.18.2 • Public • Published

    PUPPET-MOCK

    NPM Version npm (tag) NPM ES Modules

    chatie puppet

    Picture Credit: https://softwareautotools.com/2017/03/01/mocking-explained-in-python/

    Powered by Wechaty TypeScript

    Puppet Mocker & Starter Template for Wechaty, it is very useful when you:

    1. Want to test the Wechaty framework with a mock puppet, or
    2. 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

    1. v0.31: Support ES Modules

    v0.25 (July 13, 2020)

    1. Rename MockXXX to XXXMock for keep the consistent naming style with PuppetMock.
    2. 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.

    1. Add MockContact, MockRoom, and MockMessage for Mockers
    2. Add MockEnvironment for mocking the server behaviors.
    3. Support Wechaty#Contact.find() from the mocker.createContacts()
    4. Support Wechaty#Room.find() from the mocker.createRooms()
    5. 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

    AUTHOR

    Huan LI <zixia@zixia.net>

    profile for zixia on Stack Exchange, a network of free, community-driven Q&A sites

    COPYRIGHT & LICENSE

    • Code & Docs © 2018 Huan LI <zixia@zixia.net>
    • Code released under the Apache-2.0 License
    • Docs released under Creative Commons
    Tip: Click on a version number to view a previous version's package page

    Current Tags

    Version History

    Install

    npm i wechaty-puppet-mock

    DownloadsWeekly Downloads

    286

    Version

    1.18.2

    License

    Apache-2.0

    Unpacked Size

    415 kB

    Total Files

    191

    Last publish

    Collaborators

    • zixia