import Vue from 'vue' import testObjectOption from '../../../helpers/test-object-option' describe('Options methods', () => { testObjectOption('methods') it('should have correct context', () => { const vm = new Vue({ data: { a: 1 }, methods: { plus() { this.a++ } } }) vm.plus() expect(vm.a).toBe(2) }) it('should warn methods of not function type', () => { new Vue({ methods: { hello: {} } }) expect( 'Method "hello" has type "object" in the component definition' ).toHaveBeenWarned() }) it('should warn methods conflicting with data', () => { new Vue({ data: { foo: 1 }, methods: { foo() {} } }) expect( `Method "foo" has already been defined as a data property` ).toHaveBeenWarned() }) it('should warn methods conflicting with internal methods', () => { new Vue({ methods: { _update() {} } }) expect( `Method "_update" conflicts with an existing Vue instance method` ).toHaveBeenWarned() }) })