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

literate-jasmine

Package Overview
Dependencies
Maintainers
1
Versions
26
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

literate-jasmine

write tests in markdown that are parsed to specification files to run with jasmine-node

  • 0.0.11
  • Source
  • npm
  • Socket score

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

literate-jasmine Build Status

var PI;

NPM

The idea is to write markdown that gets translated to Jasmine describe and it blocks. Because we want to be able to annotate in between parts of what would become a single it, we make use of markdown hierarchy to separate one test from another and to give the it (and describe blocks names).

This README.md 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 +

Which is then written to disk as FILENAME_spec.js. Take a look at README_spec.js as an example -- it is generated using this README as input!

The command literate-jasmine is used to convert the markdown to JavaScript (assuming you ran npm install -g literate-jasmine):

literate-jasmine README.md

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

Then run the jasmine tests: jasmine-node README_spec.js.

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 third line of this README. The root describe treats any code blocks after it as global setup.

Mathematics

PI = 22/7;

add can add numbers

var a = 1,
    b = 2;

console.log(a, b, a + b);

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");

FAQs

Package last updated on 13 Feb 2014

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