Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including js-given with all npm packages installed. Try it out:

var jsGiven = require("js-given")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

js-given v0.1.8

JavaScript frontend to jgiven


Build Status Coverage Status Code Climate Known Vulnerabilities styled with prettier

GitHub license npm version Quality

JsGiven aims to bring BDD (Behavior-Driven Development) to plain (or typed) JavaScript.

It is a developer-friendly and pragmatic BDD tool for JavaScript.

Developers write scenarios in plain JavaScript using a fluent, domain-specific API, JsGiven generates reports that are readable by domain experts.

It's a JavaScript port of JGiven (written in Java). JsGiven keeps the JGiven philosophy, concepts and uses its html5 reporting tool.

You can have a look at JSGiven's own report

scenarios('recipes', RecipesStage, ({ given, when, then }) => ({
    a_pancake_can_be_fried_out_of_an_egg_milk_and_flour: scenario({}, () => {



It can be used with any javascript test runner (like Jest, Ava, Mocha, Jasmine, or Protractor).

It can be used with your favorite assertion library (like ChaiJS, Jasmine), or your framework's assertion library.

It aims to provide the most comfortable developer experience with ES6 class syntax, and optional FlowType or TypeScript typings.

Some features are missing, but the folks at are already using it daily.

Don't hesitate to give any feedback and to open a GitHub issue

Getting started

You can start using JsGiven with the user guide Don't hesitate to give any feedback and to open a GitHub issue

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free