diff --git a/rules/no-useless-undefined.js b/rules/no-useless-undefined.js index f5636e55d8..6b9af3bf32 100644 --- a/rules/no-useless-undefined.js +++ b/rules/no-useless-undefined.js @@ -70,6 +70,8 @@ const shouldIgnore = node => { } return compareFunctionNames.has(name) + // https://vuejs.org/api/reactivity-core.html#ref + || name === 'ref' // `set.add(undefined)` || name === 'add' // `map.set(foo, undefined)` diff --git a/test/no-useless-undefined.mjs b/test/no-useless-undefined.mjs index 830a87dcae..ed06d515d4 100644 --- a/test/no-useless-undefined.mjs +++ b/test/no-useless-undefined.mjs @@ -1,5 +1,5 @@ import outdent from 'outdent'; -import {getTester} from './utils/test.mjs'; +import {getTester, parsers} from './utils/test.mjs'; const {test} = getTester(import.meta); @@ -436,3 +436,36 @@ test.snapshot({ 'foo.notBind(bar, undefined)', ], }); + +test.snapshot({ + testerOptions: { + parser: parsers.vue, + }, + valid: [ + outdent` + + `, + outdent` + + `, + ], + invalid: [ + outdent` + + `, + ], +}); diff --git a/test/snapshots/no-useless-undefined.mjs.md b/test/snapshots/no-useless-undefined.mjs.md index a960ffc2da..158c538dc4 100644 --- a/test/snapshots/no-useless-undefined.mjs.md +++ b/test/snapshots/no-useless-undefined.mjs.md @@ -299,3 +299,28 @@ Generated by [AVA](https://avajs.dev). > 1 | foo.notBind(bar, undefined)␊ | ^^^^^^^^^ Do not use useless \`undefined\`.␊ ` + +## Invalid #1 + 1 | + +> Output + + `␊ + 1 | ␊ + ` + +> Error 1/1 + + `␊ + 1 | ␊ + ` diff --git a/test/snapshots/no-useless-undefined.mjs.snap b/test/snapshots/no-useless-undefined.mjs.snap index 9424edf245..df70b8a758 100644 Binary files a/test/snapshots/no-useless-undefined.mjs.snap and b/test/snapshots/no-useless-undefined.mjs.snap differ