Home

Awesome

generator-spark-bot Travis XO code style

generator-spark-bot is a yeoman generator that scaffolds out a node Cisco Spark bot following an event-driven fashion, and is extremely easy to get started with.

trigger context => callback()

Designed with simplicity and usability in mind:

Usage

Ensure yeoman is is installed:

npm install -g yo or yarn global add yo

After yeoman is installed:

$ mkdir project-name
$ cd project-name
$ yo spark-bot

App Structure

.
├── commands                  # Event handlers are within the commands
│   └── example.js            # An example command for reference
├── app.js                    # Bot entry point
├── config.js                 # Configurations
├── test.js                   # AVA Test
├── readme.md
├── license
└── package.json

Commands

Commands will instruct the bot on when and how to respond to particular contextual triggers.

To add a command, simply add a .js file within the commands directory. When the bot is initializing, commands will automatically register with Flint at runtime.

These command must implement an interface that contains a trigger property and a callback method. Refer to example.js within the commands directory.

trigger | <RegEx>, <string>

The contextual trigger that will cause the bot to execute the callback upon matches.

callback | <function>

The function to be executed (event handler).

Command Sub-generator

yo spark-bot:command

For convenience, the :command sub-generator will generate a new command within the /commands directory.

Scripts

Unit Testing

Unit testing is straightforward, simple, and already configured with the AVA test runner. Commands are accessible through the fileName as a property of the commands object. Thus, any command callbacks can be tested as such: commands.fileName.callback.

In addition, the rewire module is pre-configured to test private methods and is easily accessible without the need of exporting any private methods. This is done with the __get__() method. IE: commands.example.__get__('buildExampleMessage').

Tech Dependencies

Test Runner

Linter

Framework

License

MIT © Brandon Him