github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/themes/wind/static/libs/vue-1.0.24/test/unit/specs/instance/misc_spec.js (about) 1 var Vue = require('src') 2 3 describe('misc', function () { 4 describe('_applyFilters', function () { 5 var vm = new Vue({ 6 data: { 7 msg: 'bar' 8 }, 9 filters: { 10 read: function (v, arg) { 11 return v + ' read:' + arg 12 }, 13 read2: { 14 read: function (v, arg) { 15 return v + ' read2:' + arg 16 } 17 }, 18 write: { 19 write: function (v, oldV) { 20 return v + ' ' + oldV 21 } 22 }, 23 duplex1: { 24 read: function (v) { 25 return v.split('').reverse().join('') 26 }, 27 write: function (v) { 28 return v.split('').reverse().join('') 29 } 30 }, 31 duplex2: { 32 read: function (v) { 33 return v + 'hi' 34 }, 35 write: function (v) { 36 return v.replace('hi', '') 37 } 38 } 39 } 40 }) 41 42 it('read', function () { 43 var filters = [ 44 { name: 'read', args: [{dynamic: false, value: 'foo'}] }, 45 { name: 'read2', args: [{dynamic: true, value: 'msg'}] } 46 ] 47 var val = vm._applyFilters('test', null, filters, false) 48 expect(val).toBe('test read:foo read2:bar') 49 }) 50 51 it('write', function () { 52 var filters = [ 53 { name: 'write' } 54 ] 55 var val = vm._applyFilters('test', 'oldTest', filters, true) 56 expect(val).toBe('test oldTest') 57 }) 58 59 it('chained read + write', function () { 60 var filters = [ 61 { name: 'duplex1' }, 62 { name: 'duplex2' } 63 ] 64 var val = vm._applyFilters('test', 'oldTest', filters) 65 expect(val).toBe('tsethi') 66 val = vm._applyFilters('tsethi', 'oldTest', filters, true) 67 expect(val).toBe('test') 68 }) 69 70 it('warn not found', function () { 71 vm._applyFilters('waldo', null, [{name: 'nemo'}]) 72 expect('Failed to resolve filter').toHaveBeenWarned() 73 }) 74 }) 75 })