-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmisc_spec.js
75 lines (70 loc) · 1.87 KB
/
misc_spec.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
var Vue = require('src')
describe('misc', function () {
describe('_applyFilters', function () {
var vm = new Vue({
data: {
msg: 'BBB'
},
filters: {
read: function (v, arg) {
return v + ' read:' + arg
},
read2: {
read: function (v, arg) {
return v + ' read2:' + arg
}
},
write: {
write: function (v, oldV) {
return v + ' ' + oldV
}
},
duplex1: {
read: function (v) {
return v.split('').reverse().join('')
},
write: function (v) {
return v.split('').reverse().join('')
}
},
duplex2: {
read: function (v) {
return v + 'hi'
},
write: function (v) {
return v.replace('hi', '')
}
}
}
})
it('read', function () {
var filters = [
{ name: 'read', args: [{dynamic: false, value: 'AAA'}] },
{ name: 'read2', args: [{dynamic: true, value: 'msg'}] }
]
var val = vm._applyFilters('test', null, filters, false)
expect(val).toBe('test read:AAA read2:BBB')
})
it('write', function () {
var filters = [
{ name: 'write' }
]
var val = vm._applyFilters('test', 'oldTest', filters, true)
expect(val).toBe('test oldTest')
})
it('chained read + write', function () {
var filters = [
{ name: 'duplex1' },
{ name: 'duplex2' }
]
var val = vm._applyFilters('test', 'oldTest', filters)
expect(val).toBe('tsethi')
val = vm._applyFilters('tsethi', 'oldTest', filters, true)
expect(val).toBe('test')
})
it('warn not found', function () {
vm._applyFilters('what', null, [{name: 'wtf'}])
expect('Failed to resolve filter').toHaveBeenWarned()
})
})
})