|
|
@@ -108,4 +108,59 @@ describe('Directive v-bind', () => {
|
|
|
expect(vm.$el.firstChild.hasAttribute('disabled')).toBe(true)
|
|
|
}).then(done)
|
|
|
})
|
|
|
+
|
|
|
+ it('bind object', done => {
|
|
|
+ const vm = new Vue({
|
|
|
+ template: '<input v-bind="test">',
|
|
|
+ data: {
|
|
|
+ test: {
|
|
|
+ id: 'test',
|
|
|
+ class: 'ok',
|
|
|
+ value: 'hello'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }).$mount()
|
|
|
+ expect(vm.$el.getAttribute('id')).toBe('test')
|
|
|
+ expect(vm.$el.getAttribute('class')).toBe('ok')
|
|
|
+ expect(vm.$el.value).toBe('hello')
|
|
|
+ vm.test.id = 'hi'
|
|
|
+ vm.test.value = 'bye'
|
|
|
+ waitForUpdate(() => {
|
|
|
+ expect(vm.$el.getAttribute('id')).toBe('hi')
|
|
|
+ expect(vm.$el.getAttribute('class')).toBe('ok')
|
|
|
+ expect(vm.$el.value).toBe('bye')
|
|
|
+ }).then(done)
|
|
|
+ })
|
|
|
+
|
|
|
+ it('bind array', done => {
|
|
|
+ const vm = new Vue({
|
|
|
+ template: '<input v-bind="test">',
|
|
|
+ data: {
|
|
|
+ test: [
|
|
|
+ { id: 'test', class: 'ok' },
|
|
|
+ { value: 'hello' }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ }).$mount()
|
|
|
+ expect(vm.$el.getAttribute('id')).toBe('test')
|
|
|
+ expect(vm.$el.getAttribute('class')).toBe('ok')
|
|
|
+ expect(vm.$el.value).toBe('hello')
|
|
|
+ vm.test[0].id = 'hi'
|
|
|
+ vm.test[1].value = 'bye'
|
|
|
+ waitForUpdate(() => {
|
|
|
+ expect(vm.$el.getAttribute('id')).toBe('hi')
|
|
|
+ expect(vm.$el.getAttribute('class')).toBe('ok')
|
|
|
+ expect(vm.$el.value).toBe('bye')
|
|
|
+ }).then(done)
|
|
|
+ })
|
|
|
+
|
|
|
+ it('warn expect object', () => {
|
|
|
+ const vm = new Vue({
|
|
|
+ template: '<input v-bind="test">',
|
|
|
+ data: {
|
|
|
+ test: 1
|
|
|
+ }
|
|
|
+ }).$mount()
|
|
|
+ expect('v-bind without argument expects an Object or Array value').toHaveBeenWarned()
|
|
|
+ })
|
|
|
})
|