UNPKG

@transferwise/eslint-plugin

Version:
73 lines (67 loc) 1.95 kB
/** * @fileoverview Ensures getServerSideProps is within the pages directory * @author fergusjordantw */ //------------------------------------------------------------------------------ // Requirements //------------------------------------------------------------------------------ const { RuleTester } = require('eslint'); const rule = require('./get-server-side-props-is-in-pages-directory'); RuleTester.setDefaultConfig({ languageOptions: { ecmaVersion: 2020, sourceType: 'module', }, }); const ruleTester = new RuleTester(); ruleTester.run('get-server-side-props-is-in-pages-directory', rule, { valid: [ { code: 'export async function getServerSideProps() {}', filename: 'pages/index.tsx', }, { code: 'export const getServerSideProps = async () => {}', filename: 'pages/[someNestedDirectory]/index.js', }, { code: 'export default function() {}', filename: 'pages/[someNestedDirectory]/index.js', }, ], invalid: [ { code: 'export const getServerSideProps = async () => {}', filename: 'src/containers/SomeComponent.tsx', errors: [ { message: 'getServerSideProps can only be exported from the pages directory', type: 'Identifier', }, ], }, { code: 'export async function getServerSideProps() {}', filename: 'src/components/DifferentComponent.tsx', errors: [ { message: 'getServerSideProps can only be exported from the pages directory', type: 'Identifier', }, ], }, { code: 'export default function getServerSideProps() {}', filename: 'src/components/DifferentComponent/getServerSideProps.ts', errors: [ { message: 'getServerSideProps can only be exported from the pages directory', type: 'Identifier', }, ], }, ], });