2016-05-30 01:02:45 +08:00
|
|
|
import Vue from 'vue'
|
|
|
|
|
|
|
|
|
|
describe('Options extends', () => {
|
|
|
|
|
it('should work on objects', () => {
|
|
|
|
|
const A = {
|
|
|
|
|
data () {
|
|
|
|
|
return { a: 1 }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
const B = {
|
|
|
|
|
extends: A,
|
|
|
|
|
data () {
|
|
|
|
|
return { b: 2 }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
const vm = new Vue({
|
|
|
|
|
extends: B,
|
|
|
|
|
data: {
|
|
|
|
|
c: 3
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
expect(vm.a).toBe(1)
|
|
|
|
|
expect(vm.b).toBe(2)
|
|
|
|
|
expect(vm.c).toBe(3)
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
it('should work on extended constructors', () => {
|
|
|
|
|
const A = Vue.extend({
|
|
|
|
|
data () {
|
|
|
|
|
return { a: 1 }
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
const B = Vue.extend({
|
|
|
|
|
extends: A,
|
|
|
|
|
data () {
|
|
|
|
|
return { b: 2 }
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
const vm = new Vue({
|
|
|
|
|
extends: B,
|
|
|
|
|
data: {
|
|
|
|
|
c: 3
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
expect(vm.a).toBe(1)
|
|
|
|
|
expect(vm.b).toBe(2)
|
|
|
|
|
expect(vm.c).toBe(3)
|
|
|
|
|
})
|
|
|
|
|
})
|