diff --git a/src/rules/document-todos.ts b/src/rules/document-todos.ts new file mode 100644 index 0000000..5b8b67c --- /dev/null +++ b/src/rules/document-todos.ts @@ -0,0 +1,48 @@ +import { TSESTree } from '@typescript-eslint/types' + +import { createRule } from '../utils' + +const NAME = 'import-declaration-newline' + +// TODO: make schema +const value = createRule({ + create(context) { + return { + Program() { + const sourceCode = context.getSourceCode() + const comments = sourceCode.getAllComments() + + comments.forEach((comment) => { + if (comment.value.includes(context.settings.url as string)) { + return + } + + context.report({ + messageId: 'default', + loc: comment.loc, + }) + }) + }, + } + }, + defaultOptions: [], + meta: { + docs: { + description: 'Ensure all TODOs and FIXMEs have an issue link attached to them', + recommended: false, + requiresTypeChecking: false, + }, + messages: { + default: 'All TODOs and FIXMEs have an issue link attached to them', + }, + schema: [], + type: 'problem', + }, + name: NAME, +}) + +export default { + name: NAME, + value, +} + diff --git a/src/tests-jsx/fixtures/file.tsx b/src/tests-jsx/fixtures/file.tsx new file mode 100644 index 0000000..e69de29 diff --git a/src/tests-jsx/rules/document-todos.test.ts b/src/tests-jsx/rules/document-todos.test.ts new file mode 100644 index 0000000..c3a4cc7 --- /dev/null +++ b/src/tests-jsx/rules/document-todos.test.ts @@ -0,0 +1,48 @@ +/* eslint-disable sort-keys-fix/sort-keys-fix */ + +import rule from '../../rules/document-todos' +import { + ruleTester, + TSX_FILE_PATH, +} from '../utils' + +ruleTester.run(rule.name, rule.value, { + invalid: [ + { + code: ` +// TODO: comment above the function https://rimac-automobili.atlassian.net/jira/software/c/projects/QIA/boards/34/backlog?view=detail&selectedIssue=QIA-965&epics=visible&issueLimit=100 +const Component = () => { + /** + * This is a comment block + * TODO: and this is his todo https://rimac-automobili.atlassian.net/jira/software/c/projects/QIA/boards/34/backlog?view=detail&selectedIssue=QIA-965&epics=visible&issueLimit=100 + */ + const router = useRouter() + + // FIXME: comment above the return + return ( +
Hello
+