@soleil-se/eslint-config
Version:
ESLint configuration for Sitevision apps and projects.
88 lines (82 loc) • 2.35 kB
JavaScript
import { RuleTester } from 'eslint';
import { afterAll, describe, it } from 'vitest';
import importNamingPlugin from './index.js';
RuleTester.afterAll = afterAll;
RuleTester.describe = describe;
RuleTester.it = it;
RuleTester.itOnly = it.only;
const ruleTester = new RuleTester({
languageOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
},
});
const rule = importNamingPlugin.rules['match-package-default-import-name'];
ruleTester.run('match-package-default-import-name', rule, {
valid: [
{
code: "import PortletContextUtil from '@sitevision/api/server/PortletContextUtil';",
options: [{ packages: ['@sitevision/api'] }],
},
{
code: "import qs from 'qs';",
options: [{ packages: ['qs'] }],
},
{
code: "import debounce from 'lodash/debounce';",
options: [{ packages: ['lodash'] }],
},
{
code: "import helper from './helper.js';",
options: [{ packages: ['@sitevision/api'] }],
},
{
code: "import customName from 'pkg';",
options: [{ packages: ['@sitevision/api'] }],
},
],
invalid: [
{
code: "import portletContextUtil from '@sitevision/api/server/PortletContextUtil';\nconsole.log(portletContextUtil);",
options: [{ packages: ['@sitevision/api'] }],
errors: [
{
messageId: 'mismatch',
data: {
expected: 'PortletContextUtil',
source: '@sitevision/api/server/PortletContextUtil',
},
},
],
output: "import PortletContextUtil from '@sitevision/api/server/PortletContextUtil';\nconsole.log(PortletContextUtil);",
},
{
code: "import myQs from 'qs';\nmyQs();",
options: [{ packages: ['qs'] }],
errors: [
{
messageId: 'mismatch',
data: {
expected: 'qs',
source: 'qs',
},
},
],
output: "import qs from 'qs';\nqs();",
},
{
code: "import myDebounce from 'lodash/debounce';\nmyDebounce();",
options: [{ packages: ['lodash'] }],
errors: [
{
messageId: 'mismatch',
data: {
expected: 'debounce',
source: 'lodash/debounce',
},
},
],
output: "import debounce from 'lodash/debounce';\ndebounce();",
},
],
});