You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

89 lines
2.1 KiB

import { getRoot, fireEvent, compileAndExecute } from '../helpers/index'
describe('generate attribute', () => {
it('should be generated', (done) => {
compileAndExecute(`
<div>
<text value="Hello World" style="font-size: 100"></text>
</div>
`).then(instance => {
expect(getRoot(instance)).toEqual({
type: 'div',
children: [{
type: 'text',
style: { fontSize: '100' },
attr: { value: 'Hello World' }
}]
})
done()
}).catch(e => done.fail(e))
})
it('should be updated', (done) => {
compileAndExecute(`
<div @click="foo">
<text :value="x"></text>
</div>
`, `
data: { x: 'Hello World' },
methods: {
foo: function () {
this.x = 'Hello Vue'
}
}
`).then(instance => {
expect(getRoot(instance)).toEqual({
type: 'div',
event: ['click'],
children: [
{ type: 'text', attr: { value: 'Hello World' }}
]
})
fireEvent(instance, '_root', 'click')
return instance
}).then(instance => {
expect(getRoot(instance)).toEqual({
type: 'div',
event: ['click'],
children: [
{ type: 'text', attr: { value: 'Hello Vue' }}
]
})
done()
}).catch(e => done.fail(e))
})
it('should be cleared', (done) => {
compileAndExecute(`
<div @click="foo">
<text :value="x"></text>
</div>
`, `
data: { x: 'Hello World' },
methods: {
foo: function () {
this.x = ''
}
}
`).then(instance => {
expect(getRoot(instance)).toEqual({
type: 'div',
event: ['click'],
children: [
{ type: 'text', attr: { value: 'Hello World' }}
]
})
fireEvent(instance, '_root', 'click')
return instance
}).then(instance => {
expect(getRoot(instance)).toEqual({
type: 'div',
event: ['click'],
children: [
{ type: 'text', attr: { value: '' }}
]
})
done()
})
})
})