var _ = require('../../../../src/util') var Vue = require('../../../../src/vue') if (_.inBrowser) { describe('v-repeat', function () { var el beforeEach(function () { el = document.createElement('div') spyOn(_, 'warn') }) it('objects', function (done) { var vm = new Vue({ el: el, data: { items: [{a:1}, {a:2}] }, template: '
{{$index}} {{a}}
' }) assertMutations(vm, el, done) }) it('primitive values', function (done) { var vm = new Vue({ el: el, data: { items: [2, 1, 2] }, template: '
{{$index}} {{$value}}
' }) assertPrimitiveMutations(vm, el, done) }) it('objects with identifier', function (done) { var vm = new Vue({ el: el, data: { items: [{a:1}, {a:2}] }, template: '
{{$index}} {{item.a}}
' }) assertMutations(vm, el, done) }) it('primitive with identifier', function (done) { var vm = new Vue({ el: el, data: { items: [2, 1, 2] }, template: '
{{$index}} {{item}}
' }) assertPrimitiveMutations(vm, el, done) }) it('repeating an object of objects', function (done) { var vm = new Vue({ el: el, data: { items: { a: {a:1}, b: {a:2} } }, template: '
{{$index}} {{$key}} {{a}}
' }) assertObjectMutations(vm, el, done) }) it('repeating an object of primitives', function (done) { var vm = new Vue({ el: el, data: { items: { a: 1, b: 2 } }, template: '
{{$index}} {{$key}} {{$value}}
' }) assertObjectPrimitiveMutations(vm, el, done) }) it('repeating an object of objects with identifier', function (done) { var vm = new Vue({ el: el, data: { items: { a: {a:1}, b: {a:2} } }, template: '
{{$index}} {{$key}} {{item.a}}
' }) assertObjectMutations(vm, el, done) }) it('repeating an object of primitives with identifier', function (done) { var vm = new Vue({ el: el, data: { items: { a: 1, b: 2 } }, template: '
{{$index}} {{$key}} {{item}}
' }) assertObjectPrimitiveMutations(vm, el, done) }) it('array of arrays', function () { var vm = new Vue({ el: el, data: { items: [[1,1], [2,2], [3,3]] }, template: '
{{$index}} {{$value}}
' }) var markup = vm.items.map(function (item, i) { return '
' + i + ' ' + item.toString() + '
' }).join('') + '' expect(el.innerHTML).toBe(markup) }) it('repeating object with filter', function () { var vm = new Vue({ el: el, data: { items: { a: { msg: 'aaa' }, b: { msg: 'bbb' } } }, template: '
{{msg}}
' }) expect(el.innerHTML).toBe('
aaa
') }) it('v-component', function (done) { var vm = new Vue({ el: el, data: { items: [{a:1}, {a:2}] }, template: '

', components: { test: { template: '
{{$index}} {{a}}
', replace: true } } }) assertMutations(vm, el, done) }) it('v-component with inline-template', function (done) { var vm = new Vue({ el: el, data: { items: [{a:1}, {a:2}] }, template: '
' + '{{$index}} {{a}}' + '
', components: { test: {} } }) assertMutations(vm, el, done) }) it('v-component with inline-template on