GithubHelp home page GithubHelp logo

iameijaz / stream-video-buddy Goto Github PK

View Code? Open in Web Editor NEW

This project forked from getstream/stream-video-buddy

0.0 0.0 0.0 506 KB

Cross-platform CLI to test StreamVideoSDKs 🎥

License: Other

JavaScript 91.81% Ruby 8.19%

stream-video-buddy's Introduction

Description

stream-video-buddy is a CLI tool for automated testing of Stream Video Front-End SDKs. It acts as a participant in a video call and performs a series of actions to emulate a real user.

Even though the tool's primary purpose is automated testing, it can be pretty helpful for debugging and manual testing as well.

Installation

npm install -g "https://github.com/GetStream/stream-video-buddy#1.6.9"

Requirements

export STREAM_SDK_TEST_APP="..."
export STREAM_SDK_TEST_ACCOUNT_EMAIL="..."
export STREAM_SDK_TEST_ACCOUNT_PASSWORD="..."
export STREAM_SDK_TEST_ACCOUNT_OTP_SECRET="..."

Authorization

First of all, stream-video-buddy needs to be authorized in Dogfooding app:

$ stream-video-buddy auth
⏳ Going through Google OAuth
✅ Google OAuth has passed

As soon as authorization passes, stream-video-buddy is ready to use. In case you constantly see something like this…

❌ Google OAuth has declined OTP. Trying again...
❌ Google OAuth has declined OTP. Trying again...
❌ Google OAuth has declined OTP. Trying again...

…ensure you exported all required credentials.

⚠️ Warning

By default, stream-video-buddy uses a test Stream account to join video calls. To speed things up, it saves cookies after the very first authorization to bypass the OAuth flow on the subsequent ones. Make sure you add video-buddy-session.json to your .gitignore file.

Usage

stream-video-buddy can be executed in two ways

  1. From the command line:

    stream-video-buddy auth
    stream-video-buddy join --call-id test123 --user-count 2 --duration 10
  2. Through the local web server:

    1. Run the server instance:

      stream-video-buddy server --port 4567
    2. Execute stream-video-buddy join command via the POST request, e.g.:

      curl "http://localhost:4567/stream-video-buddy?async=true" \
        -X POST \
        -H "Content-Type: application/json" \
        -d '{"call-id": "test123", "user-count": 2, "duration": 10}'

Options reference

The table below lists all options you can include on the stream-video-buddy command line.

Category Option Description Default
General -h, --help Display help documentation
-V, --version Display version information
Events -i, --call-id <string> Which call should participant join?
-d, --duration <seconds> How long should participant stay on the call?
-c, --user-count <number> How many participants should join the call? 1
-m, --message <string> What message should participant send?
--message-count <number> How many messages should participant send? 1
--camera Should participant turn on the camera? false
--mic Should participant turn on the microphone? false
--silent Should participant be silent when the mic is on? false
--screen-share Should participant share the screen? false
--screen-sharing-duration <seconds> How long should participant share the screen?
--record Should participant record the call? false
--recording-duration <seconds> How long should participant record the call?
Debugging --show-window Should browser window be visible? false
--record-session Should buddy record the session? false

Release

To release a new version of stream-video-buddy:

  1. Update the package version in package.json file
  2. Run the following command:
bundle install
bundle exec fastlane release version:"${VERSION_NUMBER}"

Internal docs

stream-video-buddy's People

Contributors

testableapple avatar vangalilea avatar

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.