rochdev/tinto

View on GitHub
lib/assertions/property-assertion.js

Summary

Maintainability
A
0 mins
Test Coverage
'use strict';

var chai = require('chai');
var assert = require('../utils/assert');

/**
 * @name tinto.PropertyAssertion
 * @kind class
 */

/**
 * @name tinto.PropertyAssertion#been
 * @type {tinto.StateAssertion}
 */

/**
 * @name tinto.PropertyAssertion#label
 * @kind function
 * @param {string} value
 * @returns {tinto.ChainableAssertion}
 */

/**
 * @name tinto.PropertyAssertion#text
 * @kind function
 * @param {string} value
 * @returns {tinto.ChainableAssertion}
 */

/**
 * @name tinto.PropertyAssertion#title
 * @kind function
 * @param {string} value
 * @returns {tinto.ChainableAssertion}
 */

/**
 * @name tinto.PropertyAssertion#value
 * @kind function
 * @param {string} value
 * @returns {tinto.ChainableAssertion}
 */

var registered = [];
var tinto = {};

tinto.PropertyAssertion = {};

/**
 * @param {string} name
 */
tinto.PropertyAssertion.register = function(name) {
  if (registered.indexOf(name) === -1) {
    chai.Assertion.addMethod(name, assert(name, function(component, value) {
      return component.has(name, value);
    }, 'have #{name} #{exp} but got #{act}'));

    registered.push(name);
  }
};

module.exports = tinto.PropertyAssertion;