eslint-plugin-smarthr 2.4.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/package.json +2 -2
  3. package/rules/a11y-anchor-has-href-attribute/index.js +1 -0
  4. package/rules/a11y-clickable-element-has-text/index.js +1 -0
  5. package/rules/a11y-delegate-element-has-role-presentation/index.js +2 -0
  6. package/rules/a11y-form-control-in-form/index.js +1 -0
  7. package/rules/a11y-heading-in-sectioning-content/README.md +16 -1
  8. package/rules/a11y-heading-in-sectioning-content/index.js +7 -2
  9. package/rules/a11y-help-link-with-support-href/index.js +2 -1
  10. package/rules/a11y-image-has-alt-attribute/index.js +2 -0
  11. package/rules/a11y-input-has-name-attribute/index.js +6 -3
  12. package/rules/a11y-input-in-form-control/index.js +11 -4
  13. package/rules/a11y-numbered-text-within-ol/index.js +5 -0
  14. package/rules/a11y-prohibit-checkbox-or-radio-in-table-cell/index.js +2 -1
  15. package/rules/a11y-prohibit-input-maxlength-attribute/index.js +5 -4
  16. package/rules/a11y-prohibit-input-placeholder/index.js +7 -3
  17. package/rules/a11y-prohibit-sectioning-content-in-form/index.js +2 -0
  18. package/rules/a11y-prohibit-useless-sectioning-fragment/index.js +2 -1
  19. package/rules/a11y-trigger-has-button/index.js +4 -2
  20. package/rules/best-practice-for-async-current-target/index.js +2 -2
  21. package/rules/best-practice-for-button-element/index.js +1 -0
  22. package/rules/best-practice-for-data-test-attribute/index.js +1 -0
  23. package/rules/best-practice-for-date/index.js +2 -0
  24. package/rules/best-practice-for-layouts/index.js +22 -10
  25. package/rules/best-practice-for-nested-attributes-array-index/index.js +1 -0
  26. package/rules/best-practice-for-remote-trigger-dialog/index.js +2 -1
  27. package/rules/best-practice-for-tailwind-prohibit-root-margin/index.js +2 -1
  28. package/rules/best-practice-for-tailwind-variants/index.js +6 -3
  29. package/rules/component-name/README.md +11 -3
  30. package/rules/component-name/index.js +7 -2
  31. package/rules/design-system-guideline-prohibit-double-icons/index.js +1 -0
  32. package/rules/format-import-path/index.js +2 -1
  33. package/rules/jsx-start-with-spread-attributes/index.js +2 -1
  34. package/rules/no-import-other-domain/index.js +2 -1
  35. package/rules/prohibit-export-array-type/index.js +1 -0
  36. package/rules/prohibit-file-name/index.js +2 -1
  37. package/rules/prohibit-import/index.js +4 -2
  38. package/rules/prohibit-path-within-template-literal/index.js +2 -1
  39. package/rules/require-barrel-import/index.js +2 -1
  40. package/rules/require-declaration/index.js +4 -2
  41. package/rules/require-export/index.js +2 -1
  42. package/rules/require-i18n-text/index.js +4 -2
  43. package/rules/require-import/index.js +2 -1
  44. package/rules/trim-props/index.js +2 -1
  45. package/test/a11y-anchor-has-href-attribute.js +1 -0
  46. package/test/a11y-clickable-element-has-text.js +1 -0
  47. package/test/a11y-delegate-element-has-role-presentation.js +2 -0
  48. package/test/a11y-form-control-in-form.js +1 -0
  49. package/test/a11y-heading-in-sectioning-content.js +7 -2
  50. package/test/a11y-help-link-with-support-href.js +2 -1
  51. package/test/a11y-image-has-alt-attribute.js +2 -0
  52. package/test/a11y-input-has-name-attribute.js +30 -15
  53. package/test/a11y-input-in-form-control.js +15 -1
  54. package/test/a11y-numbered-text-within-ol.js +29 -0
  55. package/test/a11y-prohhibit-input-placeholder.js +19 -9
  56. package/test/a11y-prohibit-checkbox-or-radio-in-table-cell.js +21 -11
  57. package/test/a11y-prohibit-input-maxlength-attribute.js +5 -4
  58. package/test/a11y-prohibit-useless-sectioning-fragment.js +2 -1
  59. package/test/a11y-trigger-has-button.js +12 -6
  60. package/test/best-practice-for-async-current-target.js +2 -2
  61. package/test/best-practice-for-button-element.js +2 -0
  62. package/test/best-practice-for-data-test-attribute.js +1 -0
  63. package/test/best-practice-for-date.js +2 -0
  64. package/test/best-practice-for-layouts.js +26 -12
  65. package/test/best-practice-for-nested-attributes-array-index.js +1 -0
  66. package/test/best-practice-for-remote-trigger-dialog.js +6 -3
  67. package/test/best-practice-for-tailwind-prohibit-root-margin.js +2 -2
  68. package/test/best-practice-for-tailwind-variants.js +8 -4
  69. package/test/component-name.js +7 -2
  70. package/test/design-system-guideline-prohibit-double-icons.js +1 -0
  71. package/test/prohibit-file-name.js +4 -2
  72. package/test/prohibit-import.js +14 -7
  73. package/test/prohibit-path-within-template-literal.js +4 -2
  74. package/test/require-declaration.js +11 -5
  75. package/test/require-export.js +6 -3
  76. package/test/require-i18n-text.js +4 -3
  77. package/test/require-import.js +13 -7
  78. package/test/trim-props.js +18 -15
@@ -32,7 +32,8 @@ ruleTester.run('prohibit-file-name', rule, {
32
32
  'hoge\.js': 'any message.',
33
33
  }
34
34
  ],
35
- errors: [{ message: 'any message.' }]
35
+ errors: [{ message: `any message.
36
+ - 詳細: https://github.com/kufu/tamatebako/tree/master/packages/eslint-plugin-smarthr/rules/prohibit-file-name` }]
36
37
  },
37
38
  {
38
39
  code: 'const any = "code"',
@@ -42,7 +43,8 @@ ruleTester.run('prohibit-file-name', rule, {
42
43
  '(hoge|fuga)\.js': '$1.jsは作成しないで!',
43
44
  }
44
45
  ],
45
- errors: [{ message: 'hoge.jsは作成しないで!' }]
46
+ errors: [{ message: `hoge.jsは作成しないで!
47
+ - 詳細: https://github.com/kufu/tamatebako/tree/master/packages/eslint-plugin-smarthr/rules/prohibit-file-name` }]
46
48
  },
47
49
  ]
48
50
  })
@@ -105,7 +105,8 @@ ruleTester.run('prohibit-import', rule, {
105
105
  },
106
106
  }
107
107
  ],
108
- errors: [{ message: 'lodash は利用しないでください' }]
108
+ errors: [{ message: `lodash は利用しないでください
109
+ - 詳細: https://github.com/kufu/tamatebako/tree/master/packages/eslint-plugin-smarthr/rules/prohibit-import` }]
109
110
  },
110
111
  {
111
112
  code: `import { isEqual } from 'lodash'`,
@@ -119,7 +120,8 @@ ruleTester.run('prohibit-import', rule, {
119
120
  },
120
121
  }
121
122
  ],
122
- errors: [{ message: 'lodash は利用しないでください' }]
123
+ errors: [{ message: `lodash は利用しないでください
124
+ - 詳細: https://github.com/kufu/tamatebako/tree/master/packages/eslint-plugin-smarthr/rules/prohibit-import` }]
123
125
  },
124
126
  {
125
127
  code: `import { isEqual } from 'lodash'`,
@@ -133,7 +135,8 @@ ruleTester.run('prohibit-import', rule, {
133
135
  },
134
136
  }
135
137
  ],
136
- errors: [{message: 'lodash/isEqual は利用しないでください'}]
138
+ errors: [{message: `lodash/isEqual は利用しないでください
139
+ - 詳細: https://github.com/kufu/tamatebako/tree/master/packages/eslint-plugin-smarthr/rules/prohibit-import` }]
137
140
  },
138
141
  {
139
142
  code: `import { isEqual } from 'lodash'`,
@@ -148,7 +151,8 @@ ruleTester.run('prohibit-import', rule, {
148
151
  },
149
152
  }
150
153
  ],
151
- errors: [{message: 'must not use lodash/isEqual'}]
154
+ errors: [{message: `must not use lodash/isEqual
155
+ - 詳細: https://github.com/kufu/tamatebako/tree/master/packages/eslint-plugin-smarthr/rules/prohibit-import` }]
152
156
  },
153
157
  {
154
158
  code: `import { isEqual } from 'lodash'`,
@@ -166,7 +170,8 @@ ruleTester.run('prohibit-import', rule, {
166
170
  },
167
171
  }
168
172
  ],
169
- errors: [{message: 'must not use lodash/isEqual'}]
173
+ errors: [{message: `must not use lodash/isEqual
174
+ - 詳細: https://github.com/kufu/tamatebako/tree/master/packages/eslint-plugin-smarthr/rules/prohibit-import` }]
170
175
  },
171
176
  {
172
177
  code: `import { isEqual } from 'lodash'`,
@@ -184,7 +189,8 @@ ruleTester.run('prohibit-import', rule, {
184
189
  },
185
190
  }
186
191
  ],
187
- errors: [{message: 'must not use lodash/isEqual'}]
192
+ errors: [{message: `must not use lodash/isEqual
193
+ - 詳細: https://github.com/kufu/tamatebako/tree/master/packages/eslint-plugin-smarthr/rules/prohibit-import` }]
188
194
  },
189
195
  {
190
196
  code: `import { isEqual } from './module/validator'`,
@@ -198,7 +204,8 @@ ruleTester.run('prohibit-import', rule, {
198
204
  },
199
205
  }
200
206
  ],
201
- errors: [{ message: './module/validator/isEqual は利用しないでください' }]
207
+ errors: [{ message: `./module/validator/isEqual は利用しないでください
208
+ - 詳細: https://github.com/kufu/tamatebako/tree/master/packages/eslint-plugin-smarthr/rules/prohibit-import` }]
202
209
  },
203
210
  ]
204
211
  })
@@ -22,12 +22,14 @@ ruleTester.run('prohibit-path-within-template-literal', rule, {
22
22
  invalid: [
23
23
  {
24
24
  code: '`${path.hoge}`',
25
- errors: [{ message: 'path.hogeは `` で囲まないでください。queryStringを結合するなどのURL生成は path.hoge 内で行います。 (例: path.hoge({ query: { hoge: \'abc\' } })' }]
25
+ errors: [{ message: `path.hogeは \`\` で囲まないでください。queryStringを結合するなどのURL生成は path.hoge 内で行います。 (例: path.hoge({ query: { hoge: 'abc' } })
26
+ - 詳細: https://github.com/kufu/tamatebako/tree/master/packages/eslint-plugin-smarthr/rules/prohibit-path-within-template-literal` }]
26
27
  },
27
28
  {
28
29
  code: '`${ABC.hoge()}${hogehoge}`',
29
30
  options: [{ pathRegex: '^ABC$' }],
30
- errors: [{ message: 'ABC.hogeは `` で囲まないでください。queryStringを結合するなどのURL生成は ABC.hoge 内で行います。 (例: ABC.hoge({ query: { hoge: \'abc\' } })' }]
31
+ errors: [{ message: `ABC.hogeは \`\` で囲まないでください。queryStringを結合するなどのURL生成は ABC.hoge 内で行います。 (例: ABC.hoge({ query: { hoge: 'abc' } })
32
+ - 詳細: https://github.com/kufu/tamatebako/tree/master/packages/eslint-plugin-smarthr/rules/prohibit-path-within-template-literal` }]
31
33
  },
32
34
  ]
33
35
  })
@@ -90,7 +90,8 @@ ruleTester.run('format-translate-component', rule, {
90
90
  },
91
91
  }
92
92
  ],
93
- errors: [{ message: 'const fugaが宣言されていません' }],
93
+ errors: [{ message: `const fugaが宣言されていません
94
+ - 詳細: https://github.com/kufu/tamatebako/tree/master/packages/eslint-plugin-smarthr/rules/require-declaration` }],
94
95
  },
95
96
  {
96
97
  code: 'const hoge = any',
@@ -105,7 +106,8 @@ ruleTester.run('format-translate-component', rule, {
105
106
  },
106
107
  }
107
108
  ],
108
- errors: [{ message: 'fugaを定義しろ!' }],
109
+ errors: [{ message: `fugaを定義しろ!
110
+ - 詳細: https://github.com/kufu/tamatebako/tree/master/packages/eslint-plugin-smarthr/rules/require-declaration` }],
109
111
  },
110
112
  {
111
113
  code: 'const hoge = abc',
@@ -120,7 +122,8 @@ ruleTester.run('format-translate-component', rule, {
120
122
  },
121
123
  }
122
124
  ],
123
- errors: [{ message: 'const hoge では fuga を利用してください' }],
125
+ errors: [{ message: `const hoge では fuga を利用してください
126
+ - 詳細: https://github.com/kufu/tamatebako/tree/master/packages/eslint-plugin-smarthr/rules/require-declaration` }],
124
127
  },
125
128
  {
126
129
  code: 'let hoge = () => undefined',
@@ -135,7 +138,9 @@ ruleTester.run('format-translate-component', rule, {
135
138
  },
136
139
  }
137
140
  ],
138
- errors: [{ message: 'arrow-function hoge では num を利用してください' }, { message: 'arrow-function hoge では parseInt(num, 10) を利用してください' }],
141
+ errors: [{ message: `arrow-function hoge では num を利用してください
142
+ - 詳細: https://github.com/kufu/tamatebako/tree/master/packages/eslint-plugin-smarthr/rules/require-declaration` }, { message: `arrow-function hoge では parseInt(num, 10) を利用してください
143
+ - 詳細: https://github.com/kufu/tamatebako/tree/master/packages/eslint-plugin-smarthr/rules/require-declaration` }],
139
144
  },
140
145
  {
141
146
  code: 'let hoge = () => undefined',
@@ -151,7 +156,8 @@ ruleTester.run('format-translate-component', rule, {
151
156
  },
152
157
  }
153
158
  ],
154
- errors: [{ message: 'hoge関数は `const hoge = (num) => { const temp = parseInt(num, 10); /* any code. */ }` のように定義してください' }],
159
+ errors: [{ message: `hoge関数は \`const hoge = (num) => { const temp = parseInt(num, 10); /* any code. */ }\` のように定義してください
160
+ - 詳細: https://github.com/kufu/tamatebako/tree/master/packages/eslint-plugin-smarthr/rules/require-declaration` }],
155
161
  },
156
162
  ]
157
163
  })
@@ -62,7 +62,8 @@ ruleTester.run('require-export', rule, {
62
62
  '^.+$': ['fuga'],
63
63
  }
64
64
  ],
65
- errors: [{ message: 'fuga をexportしてください' }],
65
+ errors: [{ message: `fuga をexportしてください
66
+ - 詳細: https://github.com/kufu/tamatebako/tree/master/packages/eslint-plugin-smarthr/rules/require-export` }],
66
67
  },
67
68
  {
68
69
  code: `export const hoge = {}`,
@@ -71,7 +72,8 @@ ruleTester.run('require-export', rule, {
71
72
  '^.+$': ['fuga'],
72
73
  }
73
74
  ],
74
- errors: [{ message: 'fuga をexportしてください' }],
75
+ errors: [{ message: `fuga をexportしてください
76
+ - 詳細: https://github.com/kufu/tamatebako/tree/master/packages/eslint-plugin-smarthr/rules/require-export` }],
75
77
  },
76
78
  {
77
79
  code: `const hoge = {}; export { hoge }`,
@@ -80,7 +82,8 @@ ruleTester.run('require-export', rule, {
80
82
  '^.+$': ['default'],
81
83
  }
82
84
  ],
83
- errors: [{ message: 'default をexportしてください' }],
85
+ errors: [{ message: `default をexportしてください
86
+ - 詳細: https://github.com/kufu/tamatebako/tree/master/packages/eslint-plugin-smarthr/rules/require-export` }],
84
87
  },
85
88
  ]
86
89
  })
@@ -11,9 +11,10 @@ const ruleTester = new RuleTester({
11
11
  },
12
12
  })
13
13
 
14
- const attributeError = (element, attr) =>
15
- `${element}の${attr}属性に文字列リテラルが指定されています。多言語化対応のため、翻訳関数を使用してください`
16
- const childTextError = '子要素に文字列リテラルが指定されています。多言語化対応のため、翻訳関数を使用してください'
14
+ const attributeError = (element, attr) => `${element}の${attr}属性に文字列リテラルが指定されています。多言語化対応のため、翻訳関数を使用してください
15
+ - 詳細: https://github.com/kufu/tamatebako/tree/master/packages/eslint-plugin-smarthr/rules/require-i18n-text`
16
+ const childTextError = `子要素に文字列リテラルが指定されています。多言語化対応のため、翻訳関数を使用してください
17
+ - 詳細: https://github.com/kufu/tamatebako/tree/master/packages/eslint-plugin-smarthr/rules/require-i18n-text`
17
18
 
18
19
  const options = [
19
20
  {
@@ -66,7 +66,8 @@ ruleTester.run('require-import', rule, {
66
66
  },
67
67
  }
68
68
  ],
69
- errors: [{ message: 'lodash/isEqual を絶対使ってください' }],
69
+ errors: [{ message: `lodash/isEqual を絶対使ってください
70
+ - 詳細: https://github.com/kufu/tamatebako/tree/master/packages/eslint-plugin-smarthr/rules/require-import` }],
70
71
  },
71
72
  {
72
73
  code: `import { chunk } from 'lodash'`,
@@ -108,7 +109,8 @@ ruleTester.run('require-import', rule, {
108
109
  },
109
110
  }
110
111
  ],
111
- errors: [{ message: 'lodash をimportしてください' }],
112
+ errors: [{ message: `lodash をimportしてください
113
+ - 詳細: https://github.com/kufu/tamatebako/tree/master/packages/eslint-plugin-smarthr/rules/require-import` }],
112
114
  },
113
115
  {
114
116
  code: ``,
@@ -122,7 +124,8 @@ ruleTester.run('require-import', rule, {
122
124
  },
123
125
  }
124
126
  ],
125
- errors: [{ message: 'lodash をimportしてください' }],
127
+ errors: [{ message: `lodash をimportしてください
128
+ - 詳細: https://github.com/kufu/tamatebako/tree/master/packages/eslint-plugin-smarthr/rules/require-import` }],
126
129
  },
127
130
  {
128
131
  code: ``,
@@ -137,7 +140,8 @@ ruleTester.run('require-import', rule, {
137
140
  },
138
141
  }
139
142
  ],
140
- errors: [{ message: 'lodash を絶対使ってください' }],
143
+ errors: [{ message: `lodash を絶対使ってください
144
+ - 詳細: https://github.com/kufu/tamatebako/tree/master/packages/eslint-plugin-smarthr/rules/require-import` }],
141
145
  },
142
146
  {
143
147
  code: ``,
@@ -152,7 +156,8 @@ ruleTester.run('require-import', rule, {
152
156
  },
153
157
  }
154
158
  ],
155
- errors: [{ message: 'lodash/isEqual を絶対使ってください' }],
159
+ errors: [{ message: `lodash/isEqual を絶対使ってください
160
+ - 詳細: https://github.com/kufu/tamatebako/tree/master/packages/eslint-plugin-smarthr/rules/require-import` }],
156
161
  },
157
162
  {
158
163
  code: `import { chunk } from 'lodash'`,
@@ -167,7 +172,8 @@ ruleTester.run('require-import', rule, {
167
172
  },
168
173
  }
169
174
  ],
170
- errors: [{ message: 'lodash/isEqual を絶対使ってください' }],
175
+ errors: [{ message: `lodash/isEqual を絶対使ってください
176
+ - 詳細: https://github.com/kufu/tamatebako/tree/master/packages/eslint-plugin-smarthr/rules/require-import` }],
171
177
  },
172
178
  {
173
179
  code: `import { isEqual } from './module/validator'`,
@@ -181,7 +187,7 @@ ruleTester.run('require-import', rule, {
181
187
  },
182
188
  }
183
189
  ],
184
- errors: [{ message: /module\/validator\/isEqual をimportしてください$/ }],
190
+ errors: [{ message: /module\/validator\/isEqual をimportしてください/ }],
185
191
  },
186
192
  ]
187
193
  })
@@ -11,6 +11,9 @@ const ruleTester = new RuleTester({
11
11
  },
12
12
  })
13
13
 
14
+ const ERROR_MESSAGE = `属性に設定している文字列から先頭、末尾の空白文字を削除してください
15
+ - 詳細: https://github.com/kufu/tamatebako/tree/master/packages/eslint-plugin-smarthr/rules/trim-props`
16
+
14
17
  ruleTester.run('trim-props', rule, {
15
18
  valid: [
16
19
  { code: '<a href="https://www.google.com">google</a>' },
@@ -25,73 +28,73 @@ ruleTester.run('trim-props', rule, {
25
28
  {
26
29
  code: '<a href=" https://www.google.com">google</a>',
27
30
  output: '<a href="https://www.google.com">google</a>',
28
- errors: [{ message: '属性に設定している文字列から先頭、末尾の空白文字を削除してください' }],
31
+ errors: [{ message: ERROR_MESSAGE }],
29
32
  },
30
33
  {
31
34
  code: '<a href="https://www.google.com ">google</a>',
32
35
  output: '<a href="https://www.google.com">google</a>',
33
- errors: [{ message: '属性に設定している文字列から先頭、末尾の空白文字を削除してください' }],
36
+ errors: [{ message: ERROR_MESSAGE }],
34
37
  },
35
38
  {
36
39
  code: '<a href=" https://www.google.com ">google</a>',
37
40
  output: '<a href="https://www.google.com">google</a>',
38
- errors: [{ message: '属性に設定している文字列から先頭、末尾の空白文字を削除してください' }],
41
+ errors: [{ message: ERROR_MESSAGE }],
39
42
  },
40
43
  {
41
44
  code: '<a href={" https://www.google.com"}>google</a>',
42
45
  output: '<a href={"https://www.google.com"}>google</a>',
43
- errors: [{ message: '属性に設定している文字列から先頭、末尾の空白文字を削除してください' }],
46
+ errors: [{ message: ERROR_MESSAGE }],
44
47
  },
45
48
  {
46
49
  code: '<a href={"https://www.google.com "}>google</a>',
47
50
  output: '<a href={"https://www.google.com"}>google</a>',
48
- errors: [{ message: '属性に設定している文字列から先頭、末尾の空白文字を削除してください' }],
51
+ errors: [{ message: ERROR_MESSAGE }],
49
52
  },
50
53
  {
51
54
  code: '<a href={" https://www.google.com "}>google</a>',
52
55
  output: '<a href={"https://www.google.com"}>google</a>',
53
- errors: [{ message: '属性に設定している文字列から先頭、末尾の空白文字を削除してください' }],
56
+ errors: [{ message: ERROR_MESSAGE }],
54
57
  },
55
58
  {
56
59
  code: '<img src=" /sample.jpg" alt="sample " />',
57
60
  output: '<img src="/sample.jpg" alt="sample" />',
58
61
  errors: [
59
- { message: '属性に設定している文字列から先頭、末尾の空白文字を削除してください' },
60
- { message: '属性に設定している文字列から先頭、末尾の空白文字を削除してください' },
62
+ { message: ERROR_MESSAGE },
63
+ { message: ERROR_MESSAGE },
61
64
  ],
62
65
  },
63
66
  {
64
67
  code: `<img src={' /sample.jpg'} alt={'sample '} />`,
65
68
  output: `<img src={'/sample.jpg'} alt={'sample'} />`,
66
69
  errors: [
67
- { message: '属性に設定している文字列から先頭、末尾の空白文字を削除してください' },
68
- { message: '属性に設定している文字列から先頭、末尾の空白文字を削除してください' },
70
+ { message: ERROR_MESSAGE },
71
+ { message: ERROR_MESSAGE },
69
72
  ],
70
73
  },
71
74
  {
72
75
  code: '<div data-spec=" info-area ">....</div>',
73
76
  output: '<div data-spec="info-area">....</div>',
74
- errors: [{ message: '属性に設定している文字列から先頭、末尾の空白文字を削除してください' }],
77
+ errors: [{ message: ERROR_MESSAGE }],
75
78
  },
76
79
  {
77
80
  code: '<div data-spec={" info-area "}>....</div>',
78
81
  output: '<div data-spec={"info-area"}>....</div>',
79
- errors: [{ message: '属性に設定している文字列から先頭、末尾の空白文字を削除してください' }],
82
+ errors: [{ message: ERROR_MESSAGE }],
80
83
  },
81
84
  {
82
85
  code: '<div data-spec={` ab c `}>....</div>',
83
86
  output: '<div data-spec={`ab c`}>....</div>',
84
- errors: [{ message: '属性に設定している文字列から先頭、末尾の空白文字を削除してください' }],
87
+ errors: [{ message: ERROR_MESSAGE }],
85
88
  },
86
89
  {
87
90
  code: '<div data-spec={` a${b} c `}>....</div>',
88
91
  output: '<div data-spec={`a${b} c`}>....</div>',
89
- errors: [{ message: '属性に設定している文字列から先頭、末尾の空白文字を削除してください' }],
92
+ errors: [{ message: ERROR_MESSAGE }],
90
93
  },
91
94
  {
92
95
  code: '<div data-spec={` a${b ? ` ${c} ` : " "} d `}>....</div>',
93
96
  output: '<div data-spec={`a${b ? ` ${c} ` : " "} d`}>....</div>',
94
- errors: [{ message: '属性に設定している文字列から先頭、末尾の空白文字を削除してください' }],
97
+ errors: [{ message: ERROR_MESSAGE }],
95
98
  },
96
99
  ],
97
100
  })