import assert from 'power-assert'
import override from '../../src/override'


describe('override', () => {
  let Vue

  beforeEach(() => {
    Vue = function Vue () {}
    Vue.prototype._init = (options) => {}
    Vue.prototype._destroy = () => {}
  })


  it('_init', () => {
    let options = { a: 1 }
    let spy = sinon.spy(Vue.prototype, '_init')
    spy.withArgs(options)

    override(Vue)
    let vm = new Vue()
    vm._init(options)

    assert(vm._validatorMaps !== undefined)
    assert(spy.withArgs(options).calledOnce)
  })

  it('_destroy', () => {
    let spy = sinon.spy(Vue.prototype, '_destroy')
    spy.withArgs(false, false)

    override(Vue)
    let vm = new Vue()
    vm._destroy(false, false)

    assert(vm._validatorMaps === null)
    assert(spy.withArgs(false, false).calledOnce)
  })
})

@@ -250,18 +250,24 @@
  %7D)%0A%0A%0A  
-it
+describe
 ('_init'
@@ -268,32 +268,69 @@
 _init', () =%3E %7B%0A
+    it('should be called', () =%3E %7B%0A  
     let options 
@@ -340,16 +340,18 @@
  a: 1 %7D%0A
+  
     let 
@@ -390,16 +390,18 @@
 _init')%0A
+  
     spy.
@@ -419,24 +419,26 @@
 tions)%0A%0A    
+  
 override(Vue
@@ -431,32 +431,34 @@
   override(Vue)%0A
+  
     let vm = new
@@ -464,24 +464,26 @@
 w Vue()%0A    
+  
 vm._init(opt
@@ -485,24 +485,26 @@
 t(options)%0A%0A
+  
     assert(v
@@ -535,24 +535,26 @@
 efined)%0A    
+  
 assert(spy.w
@@ -588,16 +588,29 @@
 )%0A  
-%7D)%0A%0A  it
+  %7D)%0A  %7D)%0A%0A  describe
 ('_d
@@ -622,24 +622,61 @@
 y', () =%3E %7B%0A
+    it('should be called', () =%3E %7B%0A  
     let spy 
@@ -714,24 +714,26 @@
 stroy')%0A    
+  
 spy.withArgs
@@ -748,24 +748,26 @@
 false)%0A%0A    
+ 
+ 
 override(Vue
@@ -764,24 +764,26 @@
 erride(Vue)%0A
+  
     let vm =
@@ -793,24 +793,26 @@
 w Vue()%0A    
+ 
+ 
 vm._destroy(
@@ -822,24 +822,26 @@
 se, false)%0A%0A
+  
     assert(v
@@ -867,24 +867,26 @@
 = null)%0A    
+ 
+ 
 assert(spy.w
@@ -919,16 +919,23 @@
 edOnce)%0A
+    %7D)%0A
   %7D)%0A%7D)%0A

refactor override tests