This plugin serves as the core of the Mattermost Apps Framework. It extends the Mattermost server's API to allow for the creation of feature-rich integrations, with functionality supported on the Mattermost web client and mobile client. Take a look at the app developer documentation for more information.
Join the Mattermost Apps channel on our community server to discuss technical details and use cases for the app you're creating.
Refer to the Mattermost Apps Quick Start Guide for instructions on how to use the development environment and examples in the mattermost/mattermost-app-examples repository.
mattermost-plugin-apps
has two types of tests: unit tests and end to end tests.
To run the unit tests, you just need to execute:
make test
The Apps Framework e2e tests written in go require the same Docker containers used in the Mattermost development environment to be running. However these tests don't need a Mattermost server to be running. The tests instead mimic the behavior of a running server using shared code of the mattermost-server
repository. You can think of it as a "fake server" running, completely separate from the running containers, but communicating with the containers.
To run the end to end test suite, you need to have the Mattermost server project downloaded and configured in your system. Check the Developer Setup guide on how to configure a local server instance. The tests will search for a mattermost-server
folder in the same directory where the mattermost-plugin-apps
is.
With the mattermost-server
folder present, the only thing that needs to be done before running the tests themselves is to start the Mattermost development environment. The environment only needs to be started once, and then the tests can run as many times as needed. To start the Docker environment, change to the mattermost-server
project directory and run:
make start-docker
Change your directory back to mattermost-plugin-apps
and run the end to end test suite with:
make test-e2e
See documentation
- Dev: Lev Brouk (@lev.brouk)
- PM: Aaron Rothschild (@aaron.rothschild)