Просмотр исходного кода

test for config.optionMergeStrategies

Evan You 10 лет назад
Родитель
Сommit
cccfda96da
1 измененных файлов с 22 добавлено и 0 удалено
  1. 22 0
      test/unit/features/global-api/config.spec.js

+ 22 - 0
test/unit/features/global-api/config.spec.js

@@ -27,4 +27,26 @@ describe('Global config', () => {
       Vue.config.errorHandler = null
     })
   })
+
+  describe('optionMergeStrategies', () => {
+    it('should allow defining custom option merging strategies', () => {
+      const spy = jasmine.createSpy('option merging')
+      Vue.config.optionMergeStrategies.__test__ = (parent, child, vm) => {
+        spy(parent, child, vm)
+        return child + 1
+      }
+      const Test = Vue.extend({
+        __test__: 1
+      })
+      expect(spy.calls.count()).toBe(1)
+      expect(spy).toHaveBeenCalledWith(undefined, 1, undefined)
+      expect(Test.options.__test__).toBe(2)
+      const test = new Test({
+        __test__: 2
+      })
+      expect(spy.calls.count()).toBe(2)
+      expect(spy).toHaveBeenCalledWith(2, 2, test)
+      expect(test.$options.__test__).toBe(3)
+    })
+  })
 })