eslint-plugin-obsidianmd
Version:
Validates guidelines for Obsidian plugins
68 lines (67 loc) • 2.29 kB
JavaScript
import { RuleTester } from "@typescript-eslint/rule-tester";
import parser from "@typescript-eslint/parser";
import rule from "../../lib/rules/ui/sentenceCaseJson.js";
import { typedRuleTesterConfig } from "../setupRuleTester.js";
const jsonRuleTesterConfig = {
languageOptions: {
parser,
ecmaVersion: 2022,
sourceType: "module",
parserOptions: {
extraFileExtensions: [".json"],
},
},
};
RuleTester.resetDefaultConfig();
RuleTester.setDefaultConfig(jsonRuleTesterConfig);
try {
const tester = new RuleTester(jsonRuleTesterConfig);
tester.run("ui-sentence-case-json", rule, {
valid: [
{
filename: "en.json",
code: '{"label":"Enable auto-reveal","save":"Save to Google Drive","pdf":"Export as PDF"}',
},
{
filename: "en-US.json",
code: '{"github":"Connect to GitHub","ok":"OK"}',
},
{
filename: "en.json",
code: '{"code":"`Enable Auto-Reveal`","html":"<b>Enable Auto-Reveal</b>","msg":"Hello, ${name}!"}',
},
{
filename: "locales/en/common.json",
code: '{"open":"Open settings"}',
},
],
invalid: [
{
filename: "en.json",
code: '{"label":"Enable Auto-Reveal"}',
errors: [{ messageId: "useSentenceCase" }],
},
{
filename: "en.json",
code: '{"label":"Enable Auto-Reveal"}',
output: '{"label":"Enable auto-reveal"}',
options: [{ allowAutoFix: true }],
errors: [{ messageId: "useSentenceCase" }],
},
{
filename: "en-US.json",
code: '{"save":"Save To Google Drive"}',
errors: [{ messageId: "useSentenceCase" }],
},
{
filename: "locales/en/common.json",
code: '{"open":"Open Settings"}',
errors: [{ messageId: "useSentenceCase" }],
},
],
});
}
finally {
RuleTester.resetDefaultConfig();
RuleTester.setDefaultConfig(typedRuleTesterConfig);
}