/** * @fileoverview Tests for JSON reporter. * @author Chris Meyer */ "use strict"; //------------------------------------------------------------------------------ // Requirements //------------------------------------------------------------------------------ const assert = require("chai").assert, formatter = require("../../../../lib/cli-engine/formatters/json-with-metadata"); //------------------------------------------------------------------------------ // Tests //------------------------------------------------------------------------------ describe("formatter:json", () => { const rulesMeta = { foo: { type: "problem", docs: { description: "This is rule 'foo'", category: "error", recommended: true, url: "https://eslint.org/docs/rules/foo" }, fixable: "code", messages: { message1: "This is a message for rule 'foo'." } }, bar: { type: "suggestion", docs: { description: "This is rule 'bar'", category: "error", recommended: false }, messages: { message1: "This is a message for rule 'bar'." } } }; const code = { results: [{ filePath: "foo.js", messages: [{ message: "Unexpected foo.", severity: 2, line: 5, column: 10, ruleId: "foo" }] }, { filePath: "bar.js", messages: [{ message: "Unexpected bar.", severity: 1, line: 6, column: 11, ruleId: "bar" }] }], metadata: { rulesMeta } }; it("should return passed results and data as a JSON string without any modification", () => { const result = JSON.parse(formatter(code.results, code.metadata)); assert.deepStrictEqual(result, code); }); });