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  })