/** * @fileoverview Tests for internal no-valid-meta rule. * @author Vitor Balocco */ "use strict"; //------------------------------------------------------------------------------ // Requirements //------------------------------------------------------------------------------ const rule = require("../../../tools/internal-rules/no-invalid-meta"), { RuleTester } = require("../../../lib/rule-tester"); //------------------------------------------------------------------------------ // Tests //------------------------------------------------------------------------------ const ruleTester = new RuleTester(); ruleTester.run("no-invalid-meta", rule, { valid: [ // context.report() call with no fix [ "module.exports = {", " meta: {", " docs: {", " description: 'some rule',", " recommended: false", " },", " schema: []", " },", " create: function(context) {", " return {", " Program: function(node) {", " context.report({", " node: node", " });", " }", " };", " }", "};" ].join("\n"), // context.report() call in old style [ "module.exports = {", " meta: {", " docs: {", " description: 'some rule',", " recommended: false", " },", " schema: []", " },", " create: function(context) {", " return {", " Program: function(node) {", " context.report(node, 'Getter is not present');", " }", " };", " }", "};" ].join("\n"), // context.report() call with a fix property [ "module.exports = {", " meta: {", " docs: {", " description: 'some rule',", " recommended: false", " },", " schema: [],", " fixable: 'whitespace'", " },", " create: function(context) {", " return {", " Program: function(node) {", " context.report({", " node: node,", " fix: function(fixer) {", " return fixer.insertTextAfter(node, ' ');", " }", " });", " }", " };", " }", "};" ].join("\n") ], invalid: [ { code: [ "module.exports = {", " create: function(context) {", " return {", " Program: function(node) {}", " };", " }", "};" ].join("\n"), errors: [{ messageId: "missingMeta", line: 1, column: 18 }] }, { code: [ "module.exports = {", " meta: [],", " create: function(context) {", " return {", " Program: function(node) {}", " };", " }", "};" ].join("\n"), errors: [{ messageId: "missingMetaDocs", line: 2, column: 5 }] }, { code: [ "module.exports = {", " meta: {", " schema: []", " },", " create: function(context) {", " return {", " Program: function(node) {}", " };", " }", "};" ].join("\n"), errors: [{ messageId: "missingMetaDocs", line: 2, column: 5 }] }, { code: [ "module.exports = {", " meta: {", " docs: {", " description: 'some rule',", " },", " schema: []", " },", " create: function(context) {", " return {", " Program: function(node) {}", " };", " }", "};" ].join("\n"), errors: [{ messageId: "missingMetaDocsRecommended", line: 2, column: 5 }] }, { code: "", errors: [{ messageId: "noExport", line: 1, column: 1 }] }, { code: "foo();", errors: [{ messageId: "noExport", line: 1, column: 1 }] }, { code: "foo = bar;", errors: [{ messageId: "noExport", line: 1, column: 1 }] } ] });