require-func-head.test.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. /**
  2. * @fileoverview disallow `setTimeout/setInterval` in `asyncData/fetch`
  3. * @author Xin Du <clark.duxin@gmail.com>
  4. */
  5. 'use strict'
  6. // ------------------------------------------------------------------------------
  7. // Requirements
  8. // ------------------------------------------------------------------------------
  9. const rule = require('../require-func-head')
  10. const RuleTester = require('eslint').RuleTester
  11. const parserOptions = {
  12. ecmaVersion: 2018,
  13. sourceType: 'module'
  14. }
  15. // ------------------------------------------------------------------------------
  16. // Tests
  17. // ------------------------------------------------------------------------------
  18. const ruleTester = new RuleTester()
  19. ruleTester.run('require-func-head', rule, {
  20. valid: [
  21. {
  22. filename: 'test.vue',
  23. code: `
  24. export default {
  25. head() {
  26. return {
  27. title: "My page"
  28. }
  29. }
  30. }
  31. `,
  32. parserOptions
  33. }
  34. ],
  35. invalid: [
  36. {
  37. filename: 'test.vue',
  38. code: `
  39. export default {
  40. head: {
  41. title: "My page"
  42. }
  43. }
  44. `,
  45. errors: [{
  46. message: '`head` property in component must be a function.',
  47. type: 'Property'
  48. }],
  49. output: `
  50. export default {
  51. head: function() {
  52. return {
  53. title: "My page"
  54. };
  55. }
  56. }
  57. `,
  58. parserOptions
  59. }
  60. ]
  61. })