Skip to content

Commit

Permalink
fix(require-param): reporting all missing jsdoc params (#348)
Browse files Browse the repository at this point in the history
fix('require-param'): report all missing jsdoc params (fixes #347)
  • Loading branch information
yeonjuan authored and brettz9 committed Jul 20, 2019
1 parent fea6b88 commit 6d34b94
Show file tree
Hide file tree
Showing 3 changed files with 80 additions and 8 deletions.
24 changes: 24 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5774,6 +5774,30 @@ function quux (foo) {
}
// Message: Missing JSDoc @param "foo" declaration.

/**
*
*/
function quux (foo, bar) {

}
// Message: Missing JSDoc @param "foo" declaration.

/**
* @param bar
*/
function quux (foo, bar, baz) {

}
// Message: Missing JSDoc @param "foo" declaration.

/**
* @param baz
*/
function quux (foo, bar, baz) {

}
// Message: Missing JSDoc @param "foo" declaration.

/**
* @param
*/
Expand Down
10 changes: 2 additions & 8 deletions src/rules/requireParam.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,10 @@ export default iterateJsdoc(({
return;
}

functionParameterNames.some((functionParameterName, index) => {
const jsdocParameterName = jsdocParameterNames[index];

if (!jsdocParameterName) {
functionParameterNames.forEach((functionParameterName) => {
if (!jsdocParameterNames.includes(functionParameterName)) {
report(`Missing JSDoc @${utils.getPreferredTagName({tagName: 'param'})} "${functionParameterName}" declaration.`);

return true;
}

return false;
});
}, {
meta: {
Expand Down
54 changes: 54 additions & 0 deletions test/rules/assertions/requireParam.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,60 @@ export default {
}
]
},
{
code: `
/**
*
*/
function quux (foo, bar) {
}
`,
errors: [
{
message: 'Missing JSDoc @param "foo" declaration.'
},
{
message: 'Missing JSDoc @param "bar" declaration.'
}
]
},
{
code: `
/**
* @param bar
*/
function quux (foo, bar, baz) {
}
`,
errors: [
{
message: 'Missing JSDoc @param "foo" declaration.'
},
{
message: 'Missing JSDoc @param "baz" declaration.'
}
]
},
{
code: `
/**
* @param baz
*/
function quux (foo, bar, baz) {
}
`,
errors: [
{
message: 'Missing JSDoc @param "foo" declaration.'
},
{
message: 'Missing JSDoc @param "bar" declaration.'
}
]
},
{
code: `
/**
Expand Down

0 comments on commit 6d34b94

Please sign in to comment.