This is a proposal, for Rocket.Chat to host an instance for testing bots and the JS SDK (e.g. playground.rocket.chat). Putting it up to canvas needs and advice on execution from the community to make sure it provides value for all and the utility is surfaced.
It would provide for both automated unit testing and manual acceptance tests. The instance would be open to anyone to create users, rooms and run whatever bots they want but would be refreshed every 24 hours, removing all users, clearing all history and rooms other than general. There’s something sort of similar going on in the #hubot channel now, but it just looks like spam within the main instance. Setting all the spam and random test interactions aside in it’s own instance might improve the average quality of discussion on open.rocket.chat
Related issue: https://github.com/RocketChat/Rocket.Chat.js.SDK/issues/8
I have floated this with a few core team members (e.g. @sing.li, @rodrigo.nascimento) and @aaron.ogle has agreed in principle to help set it up in the official cloud environment, perhaps with some dev-ops scripting help from @JSzaszvari to setup the operations to do the refreshing (Aaron suggested using cron script calling the API to clean everything up).
Running the SDK unit tests currently requires a local instance of Rocket.Chat, manually provisioned by the developer, so this would remove that dependency, making bot and SDK development easier and cut about 20 minutes off the local dev env setup.
It would also be very handy for testing the new bot admin and deployment features @mikaelmello is working on, to create a user, spin up a new bot and start interacting with it, all within a pre-provisioned Rocket.Chat instance. Magic!
I’d like to have some prospective version of this going in a couple weeks so it’s useful during GSOC, but can iterate over a longer period as community feedback comes in.