var _ = require('../../../../src/util') var Vue = require('../../../../src/vue') if (_.inBrowser) { describe('v-ref', function () { var el beforeEach(function () { el = document.createElement('div') spyOn(_, 'warn') }) var components = { test: { id: 'test' } } it('normal', function () { var vm = new Vue({ el: el, components: components, template: '
' }) expect(vm.$.test).toBeTruthy() expect(vm.$.test.$options.id).toBe('test') vm.$.test.$destroy() expect(vm.$.test).toBeNull() }) it('with v-repeat', function (done) { var vm = new Vue({ el: el, data: { items: [1,2,3,4,5] }, template: '' }) expect(vm.$.test).toBeTruthy() expect(Array.isArray(vm.$.test)).toBe(true) expect(vm.$.test[0].$value).toBe(1) expect(vm.$.test[4].$value).toBe(5) vm.items = [] _.nextTick(function () { expect(vm.$.test.length).toBe(0) vm._directives[0].unbind() expect(vm.$.test).toBeUndefined() done() }) }) it('inside v-if', function () { var vm = new Vue({ el: el, data: { test: true }, components: components, template: '