Git Product home page Git Product logo

mad-fake-slack's Introduction



mad-fake-slack

Your fake service #1!


Developed by Mad Devs Build Status CircleCI Build Status

About project (RU)

This project is designed to help test your Slack bots in isolation from the actual Slack service. This approach allows you to run tests on CI and simulate various situations with data in the chat. The project consists of two parts: user interface and API. All communication of your bot is carried out through API methods identical to those described in the Slack API documentation. Server side is written in node.js.

Highlights

Demo of interaction with bot from examples folder (Демо взаимодействия с ботом, через UI mad-fake-slack)

The user interface gives you the ability to:

  • See current chat situation
  • Sending text messages using simple formatting *bold*, ~strike~, `code`, ```preformatted```, >quote
  • Send messages to different channels, as well as view messages on these channels
  • Writing tests using the Gherkin syntax and any library you prefer (cucumber, cucumber.js, etc.). Your tests can interact with the user interface and perform user manipulations to test the functionality of the bot.
  • Observe receipt of user_typing messages, under the message input field.

The API gives you the ability to:

  • Using a token for authentication in mad-fake-slack, as in real Slack.
  • Sending text messages using simple formatting *bold*, ~strike~, `code`, ```preformatted```, >quote
  • Request a list of channels with their identifiers
  • Sending messages to existing channels via HTTP and RTM
  • Receive messages from existing channels (via RTM).
  • Receive / send typing or user_typing messages (via RTM)
  • User information request

Badges

Dependabot Maintainability dependencies Status devDependencies Status Known Vulnerabilities

For Developers EN

Для разработчиков RU

  • [EN] coming soon...
  • [RU] скоро будет...
  • [EN] coming soon...
  • [RU] скоро будет...

mad-fake-slack's People

Contributors

cyberlight avatar dependabot[bot] avatar snyk-bot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

mad-fake-slack's Issues

Add integration tests for example bot with mad-fake-slack

  • Add jest + puppeeter to dev container
  • Add npm command for running tests
  • Write simple scenario for checking different messages which bot will send back to sender in channel and direct

Time spent: 6h 3m 24.06.2019
Time spent: 5h 31m 25.06.2019

Adapt project structure for easily deploying to glitch.com

  • Rename main file to server.js
  • Check can I change command for running app on glitch.me
  • Fix "bot example" with more readable message display
  • Add script task for creating zip archive which can be uploaded to glitch.com
  • Add script for unarchiving to current folder

Time spent: 3h 26m 26.08.2019
Time spent: 3h 45m 27.08.2019

Перенос кода в проект и его докеризация, приведение в порядок настроек

  • Перенести код
    - [ ] Добавить возможность настройки выдаваемых данных Этот пункт буду реализовывать в тикете по настройкам
  • Адаптировать докер к VSCode-insiders
  • Readme добавить

Потрачено: 5h 18m 06.06.2019
Потрачено: 54m 07.06.2019

Slack markdown message simple formatting bold, italic and etc

  • Read slack documentation about message formatting
  • Find library for markdown formatting (write own)
  • Implement message formatting using helpers on client and server side
  • Add scenarios to check message formatting (only for bold and strike)

Time spent: 4h 35m 29.07.2019
Time spent: 4h 40m 30.07.2019
Time spent: 4h 31.07.2019
Time spent: 6h 1.08.2019
Time spent: 4h 4m 6.08.2019
Time spent: 4h 40m 7.08.2019

Fix turning on inline editing of the last message by pressing KeyUp

The problem

When user try to move cursor from last line of multiline message, then his KeyUp press interpreted as trigger for editing last message. And if no last message found, user KeyUp will be blocked and user can't move cursor to upper line
  • Need to check how this feature realized in Slack
  • Implement normal logic which not blocking user movings by text lines

Time spent: 4h 15m 08.10.2019

Multiline support for inline editing of last message + Complete editing by pressing Enter

  • Add ability to insert line breaks like in message box
  • Add ability insert line breaks to any location
  • Line breaks only by Ctrl + Enter
  • Enter for accept message editing
  • Write additional acceptance tests

Time spent: 4h 27m 18.09.2019
Time spent: 4h 24.09.2019
Time spent: 5h 25.09.2019
Time spent: 5h 40m 26.09.2019
Time spent: 6h 30.09.2019
Time spent: 5h 15m 01.10.2019
Time spent: 30m 02.10.2019

Editing the last message like in a slack

  • Add template for editing message
  • Add api for updating message
  • Add JS for editing message
  • Add test scenarios for check editing messages

Time spent: 2h 09.09.2019
Time spent: 4h 50m 10.09.2019
Time spent: 4h 11.09.2019
Time spent: 4h 12.09.2019
Time spent: 5h 16.09.2019
Time spent: 4h 30m 17.09.2019

Fix README.md according to tips from @jsunderhood

  • Need to move RU and EN descriptions to separate files and insert only links
  • Add short purpose and features to top of README
  • Check README.md mobile view
  • Add UI demo project and insert link to demo in README.md

Time spent: 4h 21.08.2019

Need to fix moment when travis-ci run build separately for each ENV variable

  • Now after adding the second ENV variable, travis-ci creates two independent assemblies (for the first assembly, only the first env variable is set, and this assembly fails, but the second assembly completes successfully, because two variables are set)
  • Find solution for excluding second build

Time spent: 27m 02.07.2019

Preparing UI mockup for comfortable testing

  • Add markup and make it look like Slack with the placement of interface elements
    - [ ] Link available logic with UI that to display raw json format of messages.

Time spent: 4h 21m 07.06.2019
Time spent: 5h 10.06.2019

Change README with latest changes in IDE and etc.

  • removing information about vscode-insiders because all features now already shipped to stable version of VSCode
  • information about running example of integration tests using jest-puppeeter.
  • Move EN section to top

Time spent: 2h 26m 26.06.2019

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.