node-elizabeth
Version:

55 lines (43 loc) • 1.8 kB
JavaScript
;
var _lodash = require('lodash');
var _lodash2 = _interopRequireDefault(_lodash);
var _providers = require('../providers');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var structured = new _providers.Structured();
//TODO: provide more tests w/o adding new dependencies;
describe('Test structured provider', function () {
it('Should return valid css snippet', function () {
var result = structured.css();
expect(result).toContain(':');
expect(result[result.length - 1]).toEqual('}');
expect(result.split(' ')[1][0]).toEqual('{');
});
it('Should return valid css property', function () {
var result = structured.cssProperty();
expect(result.split(' ')).toHaveLength(2);
expect(result).toContain(':');
});
it('Should return valid html attribute value', function () {
var result = structured.htmlAttrValue({ tag: 'a', attr: 'href' });
expect(result).toMatch(/^http/);
expect(function () {
return structured.htmlAttrValue({ tag: 'a', attr: 'zzz' });
}).toThrow(new Error('Tag a or attribute zzz not supported'));
});
it('Should return valid html snippet', function () {
var result = structured.html();
expect(result[0]).toEqual('<');
expect(result[result.length - 1]).toEqual('>');
});
it('Should return valid json', function () {
var result = structured.json({ items: 3, maxDepth: 4 });
expect(_lodash2.default.isString(result)).toEqual(true);
result = JSON.parse(result);
expect([_lodash2.default.isArray(result), _lodash2.default.isObject(result)]).toContain(true);
if (_lodash2.default.isArray(result)) {
expect(result).toHaveLength(3);
} else {
expect(Object.keys(result)).toHaveLength(3);
}
});
});