// require parse5 now to avoid slowing down test require('parse5') var chalk = require('chalk') var validate = require('../index') var expect = require('chai').expect describe('vue-template-validator', function () { it('self-closing tag', function () { var code = '
\n' + ' \n' + '
' var warnings = validate(code) expect(warnings.length).to.equal(1) var msg = chalk.stripColor(warnings[0]) expect(msg).to.contain('Invalid self-closing tag: ') expect(msg).to.contain('1 |
') expect(msg).to.contain('2 | ') expect(msg).to.contain(' | ^') expect(msg).to.contain('3 |
') code = '
\n' + ' \n' + '
' warnings = validate(code) expect(warnings.length).to.equal(1) msg = chalk.stripColor(warnings[0]) expect(msg).to.contain('Invalid self-closing tag: ') expect(msg).to.contain('1 |
') expect(msg).to.contain('2 | ') expect(msg).to.contain(' | ^') expect(msg).to.contain('3 |
') }) it('camelCase tag', function () { var code = '
\n' + ' \n' + '
' var warnings = validate(code) expect(warnings.length).to.equal(1) var msg = chalk.stripColor(warnings[0]) expect(msg).to.contain('Found camelCase tag: ') expect(msg).to.contain('Use instead') expect(msg).to.contain('1 |
') expect(msg).to.contain('2 | ') expect(msg).to.contain(' | ^') expect(msg).to.contain('3 |
') }) it('camelCase attr', function () { var code = '
\n' + '
' var warnings = validate(code) expect(warnings.length).to.equal(1) var msg = chalk.stripColor(warnings[0]) expect(msg).to.contain('Found camelCase attribute: myProp="123"') expect(msg).to.contain('Use my-prop="123" instead') expect(msg).to.contain('1 |
') expect(msg).to.contain('2 |
') expect(msg).to.contain(' | ^') }) it('multiple warnings', function () { var code = '
\n' + ' \n' + '
' var warnings = validate(code) expect(warnings.length).to.equal(3) var msg // 1 msg = chalk.stripColor(warnings[0]) expect(msg).to.contain('Invalid self-closing tag: ') expect(msg).to.contain('1 |
') expect(msg).to.contain('2 | ') expect(msg).to.contain(' | ^') expect(msg).to.contain('3 |
') // 2 msg = chalk.stripColor(warnings[1]) expect(msg).to.contain('Found camelCase tag: ') expect(msg).to.contain('Use instead') expect(msg).to.contain('1 |
') expect(msg).to.contain('2 | ') expect(msg).to.contain(' | ^') expect(msg).to.contain('3 |
') // 3 var msg = chalk.stripColor(warnings[2]) expect(msg).to.contain('Found camelCase attribute: myProp="123"') expect(msg).to.contain('Use my-prop="123" instead') expect(msg).to.contain('1 |
') expect(msg).to.contain('2 | ') expect(msg).to.contain(' | ^') expect(msg).to.contain('3 |
') }) it('table', function () { var warnings = validate('
') expect(warnings.length).to.equal(1) var msg = chalk.stripColor(warnings[0]) expect(msg).to.contain('Tag cannot appear inside ') expect(msg).to.contain('1 |
') expect(msg).to.contain(' | ^') }) it('svg valid tags', function() { var code = '\n' + ' \n' + ' \n' + '' var warnings = validate(code) expect(warnings.length).to.equal(0) var msg // linearGradient msg = chalk.stripColor(warnings[0]) expect(msg).to.not.exist // clipPath msg = chalk.stripColor(warnings[1]) expect(msg).to.not.exist }) it('svg invalid tag', function() { var code = '\n' + ' \n' + '' var warnings = validate(code) expect(warnings.length).to.equal(1) var msg = chalk.stripColor(warnings[0]) expect(msg).to.contain('Found camelCase tag: ') expect(msg).to.contain('Use instead') expect(msg).to.contain('1 | ') expect(msg).to.contain('2 | ') expect(msg).to.contain(' | ^') expect(msg).to.contain('3 | ') }) it('svg camelCase attrs', function () { var code = '' var warnings = validate(code) expect(warnings.length).to.equal(0) }) })