Files
2016-06-07 11:06:53 +02:00

73 lines
1.8 KiB
JavaScript

var is = require('is');
var path = require('path');
var fs = require('fs');
var expect = require('expect');
var cheerio = require('cheerio');
expect.extend({
/**
* Check that a file is created in a directory:
* expect('myFolder').toHaveFile('hello.md');
*/
toHaveFile: function(fileName) {
var filePath = path.join(this.actual, fileName);
var exists = fs.existsSync(filePath);
expect.assert(
exists,
'expected %s to have file %s',
this.actual,
fileName
);
return this;
},
toNotHaveFile: function(fileName) {
var filePath = path.join(this.actual, fileName);
var exists = fs.existsSync(filePath);
expect.assert(
!exists,
'expected %s to not have file %s',
this.actual,
fileName
);
return this;
},
/**
* Check that a value is defined (not null nor undefined)
*/
toBeDefined: function() {
expect.assert(
!(is.undefined(this.actual) || is.null(this.actual)),
'expected to be defined'
);
return this;
},
/**
* Check that a value is defined (not null nor undefined)
*/
toNotBeDefined: function() {
expect.assert(
(is.undefined(this.actual) || is.null(this.actual)),
'expected %s to be not defined',
this.actual
);
return this;
},
/**
* Check that a dom element exists in HTML
* @param {String} selector
*/
toHaveDOMElement: function(selector) {
var $ = cheerio.load(this.actual);
var $el = $(selector);
expect.assert($el.length > 0, 'expected HTML to contains %s', selector);
}
});
global.expect = expect;