Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

literate-jasmine

Package Overview
Dependencies
Maintainers
2
Versions
26
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

literate-jasmine

Write jasmine tests in markdown as documentation

  • 0.1.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
2
decreased by-50%
Maintainers
2
Weekly downloads
 
Created
Source

literate-jasmine Build Status

NPM

var PI;

Mathematics

PI = 22/7;

add can add numbers

var a = 1,
    b = 2;

expect(a + b).toBe(3);

can divide numbers

var a = 6,
    b = 2;

And a comment here doesn't break things:

expect(a/b).toBe(3);

calculates the circumference of a circle

Note that we reference the variable PI below that is defined in the code block at the top of this describe (so right under "Mathematics").

var circumference = function(radius) {
  return 2 * PI * radius;
};

expect(circumference(5)).toBe(2 * 22/7 * 5);

Strings

appending works with +

var text = "abc";

expect(text + "d").toBe("abcd");

Asynchronous

works with done

setTimeout(function() {
  expect(true).toBe(true);
  done();
}, 50);

The file you are currently reading has a markdown structure (which includes the main header above and the other parts below) that is parsed into a tree:

  • literate-jasmine
    • Mathematices
      • add can add numbers (level 3 header)
      • add can add numbers
      • calculates the circumference of a circle
    • Strings
      • appending works with +
    • Asynchronous
      • works with done

Which is then uses the Jasmine describe, it and beforeEach to setup the tests and then run them.

Note that there is a convention -- a hard rule that there will be a top header (top describe), one or more headers below that (describes) and one or more header below each of those (it blocks).*

screen shot of convention

This hard limitation makes sense:

  • forces documentation to be simple
  • nested describes indicate that extracted some code to helper functions is probably a sensible solution instead of adding more nesting
  • easier to parse both as a human and as a computer
  • keeps everything simple

literate-jasmine README.md

screen shot of running literate-jasmine on this README.md

(If you're working on this project, run ./bin/literate-jasmine instead.)

Take a close look at how scope works for globals. In the Mathematics section below, we reference PI to reset it as a beforeEach so every test has PI reset to the correct value. The actual declaration of PI as a variable happens on the fourth line of this README. The root describe treats any code blocks after it as global setup.

FAQs

Package last updated on 25 Apr 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc