misc_spec.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. var _ = require('../../../../src/util')
  2. describe('Util - Misc', function () {
  3. it('checkComponent', function () {
  4. var el = document.createElement('component')
  5. // <component> with no is attr
  6. var res = _.checkComponent(el)
  7. expect(res).toBe(null)
  8. // <component is="...">
  9. el.setAttribute('is', '{{what}}')
  10. res = _.checkComponent(el)
  11. expect(res).toBe('{{what}}')
  12. // custom element, not defined
  13. el = document.createElement('test')
  14. res = _.checkComponent(el, {
  15. components: {}
  16. })
  17. expect(res).toBeUndefined()
  18. // custom element, defined
  19. res = _.checkComponent(el, {
  20. components: { test: true }
  21. })
  22. expect(res).toBe('test')
  23. })
  24. it('resolveFilters', function () {
  25. var filters = [
  26. { name: 'a', args: [{ value: 'a', dynamic: false }] },
  27. { name: 'b', args: [{ value: 'b', dynamic: true }]},
  28. { name: 'c' }
  29. ]
  30. var vm = {
  31. _asset: function (type, id) {
  32. return this.$options[type][id]
  33. },
  34. $get: function (key) {
  35. var data = {
  36. b: 'BB'
  37. }
  38. return data[key]
  39. },
  40. $options: {
  41. filters: {
  42. a: function (v, arg) {
  43. return { id: 'a', value: v, arg: arg }
  44. },
  45. b: {
  46. read: function (v, arg) {
  47. return { id: 'b', value: v, arg: arg }
  48. },
  49. write: function (v, oldVal, arg) {
  50. return { id: 'bw', value: v, arg: arg }
  51. }
  52. }
  53. }
  54. }
  55. }
  56. var target = {
  57. value: 'v'
  58. }
  59. var res = _.resolveFilters(vm, filters, target)
  60. expect(res.read.length).toBe(2)
  61. expect(res.write.length).toBe(1)
  62. var readA = res.read[0](1)
  63. expect(readA.id).toBe('a')
  64. expect(readA.value).toBe(1)
  65. expect(readA.arg).toBe('a')
  66. var readB = res.read[1].call(vm, 2)
  67. expect(readB.id).toBe('b')
  68. expect(readB.value).toBe(2)
  69. expect(readB.arg).toBe('BB')
  70. var writeB = res.write[0](3)
  71. expect(writeB.id).toBe('bw')
  72. expect(writeB.value).toBe(3)
  73. expect(writeB.arg).toBe('BB')
  74. })
  75. it('applyFilters', function () {
  76. var filters = [
  77. function (v) {
  78. return v + 2
  79. },
  80. function (v) {
  81. return v + 3
  82. }
  83. ]
  84. var res = _.applyFilters(1, filters)
  85. expect(res).toBe(6)
  86. })
  87. })