rsnext/test/unit/eslint-plugin-next/no-typos.test.ts
JJ Kasper 005b13f1ac
Move unit tests to one folder and migrate them to TypeScript (#28427)
* Move unit tests to one folder

* Migrate unit tests to TypeScript

* add test types to lint

* Ensure ts(x) tests are run with util

* Add tsx extension to jest config

* bump
2021-08-24 07:52:45 -05:00

130 lines
3.1 KiB
TypeScript

import rule from '@next/eslint-plugin-next/lib/rules/no-typos'
import { RuleTester } from 'eslint'
;(RuleTester as any).setDefaultConfig({
parserOptions: {
ecmaVersion: 2018,
sourceType: 'module',
ecmaFeatures: {
modules: true,
jsx: true,
},
},
})
const ruleTester = new RuleTester()
ruleTester.run('no-typos', rule, {
valid: [
`
export default function Page() {
return <div></div>;
}
export const getStaticPaths = async () => {};
export const getStaticProps = async () => {};
`,
`
export default function Page() {
return <div></div>;
}
export const getServerSideProps = async () => {};
`,
`
export default function Page() {
return <div></div>;
}
export async function getStaticPaths() {};
export async function getStaticProps() {};
`,
`
export default function Page() {
return <div></div>;
}
export async function getServerSideProps() {};
`,
// detect only typo that is one operation away from the correct one
`
export default function Page() {
return <div></div>;
}
export async function getServerSidePropsss() {};
`,
`
export default function Page() {
return <div></div>;
}
export async function getstatisPath() {};
`,
],
invalid: [
{
code: `
export default function Page() {
return <div></div>;
}
export const getStaticpaths = async () => {};
export const getStaticProps = async () => {};
`,
filename: 'pages/index.js',
errors: [
{
message: 'getStaticpaths may be a typo. Did you mean getStaticPaths?',
type: 'ExportNamedDeclaration',
},
],
},
{
code: `
export default function Page() {
return <div></div>;
}
export async function getStaticPathss(){};
export async function getStaticPropss(){};
`,
filename: 'pages/index.js',
errors: [
{
message:
'getStaticPathss may be a typo. Did you mean getStaticPaths?',
type: 'ExportNamedDeclaration',
},
{
message:
'getStaticPropss may be a typo. Did you mean getStaticProps?',
type: 'ExportNamedDeclaration',
},
],
},
{
code: `
export default function Page() {
return <div></div>;
}
export async function getServurSideProps(){};
`,
filename: 'pages/index.js',
errors: [
{
message:
'getServurSideProps may be a typo. Did you mean getServerSideProps?',
type: 'ExportNamedDeclaration',
},
],
},
{
code: `
export default function Page() {
return <div></div>;
}
export const getServurSideProps = () => {};
`,
filename: 'pages/index.js',
errors: [
{
message:
'getServurSideProps may be a typo. Did you mean getServerSideProps?',
type: 'ExportNamedDeclaration',
},
],
},
],
})