UNPKG

node-elizabeth

Version:
55 lines (43 loc) 1.8 kB
'use strict'; 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); } }); });