64 lines
2.1 KiB
JavaScript
64 lines
2.1 KiB
JavaScript
'use strict'
|
|
const reactTemplates = require('../../src/reactTemplates')
|
|
const testUtils = require('./utils/testUtils')
|
|
const readFileNormalized = testUtils.readFileNormalized
|
|
const path = require('path')
|
|
const fsUtil = require('../../src/fsUtil')
|
|
const fs = require('fs')
|
|
const assert = require('assert')
|
|
|
|
const files = [
|
|
'scope.rt',
|
|
'scope-trailing-semicolon.rt',
|
|
'scope-variable-references.rt',
|
|
'lambda.rt',
|
|
'eval.rt',
|
|
'props.rt',
|
|
'custom-element.rt',
|
|
'style.rt',
|
|
'concat.rt',
|
|
'js-in-attr.rt',
|
|
'props-class.rt',
|
|
'rt-class.rt',
|
|
'className.rt',
|
|
'svg.rt',
|
|
'virtual.rt',
|
|
'scope-evaluated-after-repeat.rt',
|
|
'scope-evaluated-after-repeat2.rt',
|
|
'scope-evaluated-after-if.rt',
|
|
'scope-obj.rt',
|
|
'scope-reserved-tokens.rt',
|
|
'repeat-literal-collection.rt',
|
|
'include.rt'
|
|
]
|
|
|
|
describe('utils', () => {
|
|
describe('#convertText', () => {
|
|
it('should convert text successfully', () => {
|
|
const dataPath = path.resolve(__dirname, '..', 'data')
|
|
files.forEach(testFile => {
|
|
const filename = path.join(dataPath, testFile)
|
|
const options = {
|
|
readFileSync: fsUtil.createRelativeReadFileSync(filename),
|
|
modules: 'amd'
|
|
}
|
|
let actual = ''
|
|
let equal = false
|
|
try {
|
|
const html = fs.readFileSync(filename).toString()
|
|
const expected = testUtils.normalizeHtml(readFileNormalized(`${filename}.html`))
|
|
const code = reactTemplates.convertTemplateToReact(html, options).replace(/\r/g, '')
|
|
actual = testUtils.normalizeHtml(testUtils.codeToHtml(code))
|
|
equal = assert.equal(actual, expected, `${testFile}`)
|
|
} catch (e) {
|
|
console.log(testFile, e)
|
|
assert.fail(e)
|
|
}
|
|
if (!equal) {
|
|
fs.writeFileSync(`${filename}.actual.html`, actual)
|
|
}
|
|
})
|
|
})
|
|
})
|
|
})
|