no-template-vars.test.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /**
  2. * Licensed to the Apache Software Foundation (ASF) under one
  3. * or more contributor license agreements. See the NOTICE file
  4. * distributed with this work for additional information
  5. * regarding copyright ownership. The ASF licenses this file
  6. * to you under the Apache License, Version 2.0 (the
  7. * "License"); you may not use this file except in compliance
  8. * with the License. You may obtain a copy of the License at
  9. *
  10. * http://www.apache.org/licenses/LICENSE-2.0
  11. *
  12. * Unless required by applicable law or agreed to in writing,
  13. * software distributed under the License is distributed on an
  14. * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  15. * KIND, either express or implied. See the License for the
  16. * specific language governing permissions and limitations
  17. * under the License.
  18. */
  19. /**
  20. * @fileoverview Rule to warn about translation template variables
  21. * @author Apache
  22. */
  23. /* eslint-disable no-template-curly-in-string */
  24. const { RuleTester } = require('eslint');
  25. const plugin = require('.');
  26. //------------------------------------------------------------------------------
  27. // Tests
  28. //------------------------------------------------------------------------------
  29. const ruleTester = new RuleTester({ parserOptions: { ecmaVersion: 6 } });
  30. const rule = plugin.rules['no-template-vars'];
  31. const errors = [
  32. {
  33. type: 'CallExpression',
  34. },
  35. ];
  36. ruleTester.run('no-template-vars', rule, {
  37. valid: [
  38. 't(`foo`)',
  39. 'tn(`foo`)',
  40. 't(`foo %s bar`)',
  41. 'tn(`foo %s bar`)',
  42. 't(`foo %s bar %s`)',
  43. 'tn(`foo %s bar %s`)',
  44. ],
  45. invalid: [
  46. {
  47. code: 't(`foo${bar}`)',
  48. errors,
  49. },
  50. {
  51. code: 't(`foo${bar} ${baz}`)',
  52. errors,
  53. },
  54. {
  55. code: 'tn(`foo${bar}`)',
  56. errors,
  57. },
  58. {
  59. code: 'tn(`foo${bar} ${baz}`)',
  60. errors,
  61. },
  62. ],
  63. });