import { parseComponent } from 'sfc/parser'
describe('Single File Component parser', () => {
it('should parse', () => {
const res = parseComponent(`
hi
`)
expect(res.template.content.trim()).toBe('hi
')
expect(res.styles.length).toBe(2)
expect(res.styles[0].src).toBe('./test.css')
expect(res.styles[1].lang).toBe('stylus')
expect(res.styles[1].scoped).toBe(true)
expect(res.styles[1].content.trim()).toBe('h1\n color red\nh2\n color green')
expect(res.script.content.trim()).toBe('export default {}')
})
it('should parse template with closed input', () => {
const res = parseComponent(`
`)
expect(res.template.content.trim()).toBe('')
})
it('should handle nested template', () => {
const res = parseComponent(`
hi
`)
expect(res.template.content.trim()).toBe('hi
')
})
it('pad content', () => {
const res = parseComponent(`
`.trim(), { pad: true })
expect(res.script.content).toBe(Array(3 + 1).join('//\n') + '\nexport default {}\n')
expect(res.styles[0].content).toBe(Array(6 + 1).join('\n') + '\nh1 { color: red }\n')
})
})