@wordpress/eslint-plugin
Version:
ESLint plugin for WordPress development.
169 lines (159 loc) • 3.11 kB
JavaScript
/**
* External dependencies
*/
import { RuleTester } from 'eslint';
/**
* Internal dependencies
*/
import rule from '../dependency-group';
const ruleTester = new RuleTester( {
languageOptions: {
sourceType: 'module',
ecmaVersion: 6,
},
} );
ruleTester.run( 'dependency-group', rule, {
valid: [
{
code: `
/**
* External dependencies
*/
import { camelCase } from 'change-case';
import clsx from 'clsx';;
/**
* WordPress dependencies
*/
import { Component } from '@wordpress/element';
/**
* Internal dependencies
*/
import edit from './edit';`,
},
{
code: `
/**
* External dependencies
*/
const { camelCase } = require( 'change-case' );
const clsx = require( 'clsx' );
/**
* WordPress dependencies
*/
const { Component } = require( '@wordpress/element' );
/**
* Internal dependencies
*/
const edit = require( './edit' );`,
},
{
code: `
import { camelCase } from 'change-case';
import clsx from 'clsx';
import { Component } from '@wordpress/element';
import edit from './edit';`,
options: [ 'never' ],
},
],
invalid: [
{
code: `
import { camelCase } from 'change-case';
import clsx from 'clsx';;
/*
* wordpress dependencies.
*/
import { Component } from '@wordpress/element';
import edit from './edit';`,
errors: [
{
message:
'Expected preceding "External dependencies" comment block',
},
{
message:
'Expected preceding "WordPress dependencies" comment block',
},
{
message:
'Expected preceding "Internal dependencies" comment block',
},
],
output: `
/**
* External dependencies
*/
import { camelCase } from 'change-case';
import clsx from 'clsx';;
/**
* WordPress dependencies
*/
import { Component } from '@wordpress/element';
/**
* Internal dependencies
*/
import edit from './edit';`,
},
{
code: `
const { camelCase } = require( 'change-case' );
const clsx = require( 'clsx' );
/*
* wordpress dependencies.
*/
const { Component } = require( '@wordpress/element' );
const edit = require( './edit' );`,
errors: [
{
message:
'Expected preceding "External dependencies" comment block',
},
{
message:
'Expected preceding "WordPress dependencies" comment block',
},
{
message:
'Expected preceding "Internal dependencies" comment block',
},
],
output: `
/**
* External dependencies
*/
const { camelCase } = require( 'change-case' );
const clsx = require( 'clsx' );
/**
* WordPress dependencies
*/
const { Component } = require( '@wordpress/element' );
/**
* Internal dependencies
*/
const edit = require( './edit' );`,
},
{
code: `
/**
* External dependencies
*/
import { camelCase } from 'change-case';
/**
* WordPress dependencies
*/
import { Component } from '@wordpress/element';`,
options: [ 'never' ],
errors: [
{
message: 'Unexpected dependency group comment block',
},
{
message: 'Unexpected dependency group comment block',
},
],
output: `
import { camelCase } from 'change-case';
import { Component } from '@wordpress/element';`,
},
],
} );