import Vue from 'vue'

describe('Options inheritAttrs', () => {
  it('should work', done => {
    const vm = new Vue({
      template: `<foo :id="foo"/>`,
      data: { foo: 'foo' },
      components: {
        foo: {
          inheritAttrs: false,
          template: `<div>foo</div>`
        }
      }
    }).$mount()
    expect(vm.$el.id).toBe('')
    vm.foo = 'bar'
    waitForUpdate(() => {
      expect(vm.$el.id).toBe('')
    }).then(done)
  })

  it('with inner v-bind', done => {
    const vm = new Vue({
      template: `<foo :id="foo"/>`,
      data: { foo: 'foo' },
      components: {
        foo: {
          inheritAttrs: false,
          template: `<div><div v-bind="$attrs"></div></div>`
        }
      }
    }).$mount()
    expect(vm.$el.children[0].id).toBe('foo')
    vm.foo = 'bar'
    waitForUpdate(() => {
      expect(vm.$el.children[0].id).toBe('bar')
    }).then(done)
  })
})