misc_spec.js 1.9 KB

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