Wondering what’s next for npm?Check out our public roadmap! »

shared-examples-for

0.1.3 • Public • Published

node-shared-examples-for

Inspired by shared_example_for from RSpec

Usage

Helper can be used with mocha, jasmine runners. Also shared examples can be defined with arguments, ex (mocha + chai):

 
var expect = require('chai').expect;
var shared = require('shared-examples-for');
 
shared.examplesFor('user', function (userAttributes) { // shared example can have any number of arguments
 
  it('should have login', function () {
    expect(this.user).to.have.property('login', userAttributes.login);
  });
 
  it('should have email', function () {
    expect(this.user).to.have.property('email', userAttributes.email);
  });
 
});
 
describe('Users', function () {
  var attributes = {
    login: 'foo',
    email: 'bar@baz.test'
  };
 
  describe('Usual user', function () {
    before(function () {
      this.user = new User(attributes);
    });
 
    shared.shouldBehaveLike('user', attributes); // all arguments after shared example title will be passed to shared example function
  });
 
  describe('Admin', function () {
 
    before(function () {
      this.user = new Admin(attributes);
    });
 
    shared.shouldBehaveLike('user', attributes);
 
    it('should be admin', function () {
      expect(this.user.isAdmin()).to.be.true;
    });
  });
 
});
 

Install

npm i shared-examples-for

DownloadsWeekly Downloads

571

Version

0.1.3

License

The MIT License (MIT)

Last publish

Collaborators

  • avatar