Skip to content

Commit

Permalink
Refactor lib/rules/__tests__/* test files to migrate to ESM (#7024)
Browse files Browse the repository at this point in the history
This change is performed by the following script (though it requires a bit of manual).

```shell
node to-esm.mjs lib/rules/*/__tests__/index.js
```

```js
// to-esm.mjs
import { argv, stdout } from 'node:process';
import { readFile, unlink, writeFile } from 'node:fs/promises';
import { execSync } from 'node:child_process';

async function processFile(file) {
	const ruleFile = file.replace('/__tests__/index.js', '/index.js');

	if ((await readFile(ruleFile, 'utf8')).includes('\tdeprecated: true,')) {
		stdout.write(`Skip deprecated ${file}\n`);

		return;
	}

	let lines = (await readFile(file, 'utf8')).split('\n');

	lines = lines.filter((line) => !line.includes('use strict'));

	lines.forEach((line, i) => {
		line = line.replace(
			"const stripIndent = require('common-tags').stripIndent",
			"const { stripIndent } = require('common-tags')",
		);

		line = line.replace(
			"const { messages, ruleName } = require('..');",
			"import rule from '../index.js'; const { messages, ruleName } = rule;",
		);

		line = line.replace(/const (.+) = require\('(\..+)'\)/, 'import $1 from "$2.js"');
		line = line.replace(/const (.+) = require\('(.+)'\)/, 'import $1 from "$2"');

		lines[i] = line;
	});

	const newFile = file.replace(/\.js$/, '.mjs');
	const newContent = `${lines.join('\n')}\n`;

	await writeFile(newFile, newContent);

	stdout.write(`=> ${newFile}\n`);

	await unlink(file);
}

const files = argv.slice(2);

Promise.all(files.map((f) => processFile(f))).then(() => {
	execSync(`npx prettier --loglevel silent --write lib/rules`, { encoding: 'utf8' });
});
```
  • Loading branch information
ybiquitous committed Jul 3, 2023
1 parent 366e0d8 commit b919a0b
Show file tree
Hide file tree
Showing 125 changed files with 289 additions and 413 deletions.
@@ -1,8 +1,7 @@
'use strict';
import { stripIndent } from 'common-tags';

const stripIndent = require('common-tags').stripIndent;

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down
@@ -1,6 +1,5 @@
'use strict';

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down
@@ -1,6 +1,5 @@
'use strict';

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down
@@ -1,6 +1,5 @@
'use strict';

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down
@@ -1,9 +1,8 @@
'use strict';
import { stripIndent } from 'common-tags';

const stripIndent = require('common-tags').stripIndent;

const mergeTestDescriptions = require('../../../testUtils/mergeTestDescriptions');
const { messages, ruleName } = require('..');
import mergeTestDescriptions from '../../../testUtils/mergeTestDescriptions.js';
import rule from '../index.js';
const { messages, ruleName } = rule;

const sharedAlwaysTests = {
accept: [
Expand Down
@@ -1,6 +1,5 @@
'use strict';

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down
@@ -1,6 +1,5 @@
'use strict';

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down
@@ -1,6 +1,5 @@
'use strict';

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down
@@ -1,6 +1,5 @@
'use strict';

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down
@@ -1,8 +1,7 @@
'use strict';
import { stripIndent } from 'common-tags';

const stripIndent = require('common-tags').stripIndent;

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down
@@ -1,6 +1,5 @@
'use strict';

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down
@@ -1,9 +1,8 @@
'use strict';
import mergeTestDescriptions from '../../../testUtils/mergeTestDescriptions.js';
import naiveCssInJs from '../../../__tests__/fixtures/postcss-naive-css-in-js.js';

const naiveCssInJs = require('../../../__tests__/fixtures/postcss-naive-css-in-js');
const mergeTestDescriptions = require('../../../testUtils/mergeTestDescriptions');

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

const sharedTests = {
accept: [
Expand Down
@@ -1,6 +1,5 @@
'use strict';

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down
@@ -1,8 +1,7 @@
'use strict';
import naiveCssInJs from '../../../__tests__/fixtures/postcss-naive-css-in-js.js';

const naiveCssInJs = require('../../../__tests__/fixtures/postcss-naive-css-in-js');

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down
@@ -1,8 +1,7 @@
'use strict';
import naiveCssInJs from '../../../__tests__/fixtures/postcss-naive-css-in-js.js';

const naiveCssInJs = require('../../../__tests__/fixtures/postcss-naive-css-in-js');

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down
@@ -1,7 +1,6 @@
'use strict';

const mergeTestDescriptions = require('../../../testUtils/mergeTestDescriptions');
const { messages, ruleName } = require('..');
import mergeTestDescriptions from '../../../testUtils/mergeTestDescriptions.js';
import rule from '../index.js';
const { messages, ruleName } = rule;

const alwaysTests = {
accept: [
Expand Down
@@ -1,6 +1,5 @@
'use strict';

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down
@@ -1,8 +1,7 @@
'use strict';
import { stripIndent } from 'common-tags';

const { stripIndent } = require('common-tags');

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down
@@ -1,6 +1,5 @@
'use strict';

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down
@@ -1,6 +1,5 @@
'use strict';

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down
@@ -1,6 +1,5 @@
'use strict';

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down
@@ -1,8 +1,7 @@
'use strict';
import naiveCssInJs from '../../../__tests__/fixtures/postcss-naive-css-in-js.js';

const naiveCssInJs = require('../../../__tests__/fixtures/postcss-naive-css-in-js');

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down
@@ -1,8 +1,7 @@
'use strict';
import { stripIndent } from 'common-tags';

const stripIndent = require('common-tags').stripIndent;

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down
@@ -1,6 +1,5 @@
'use strict';

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down
@@ -1,8 +1,7 @@
'use strict';
import naiveCssInJs from '../../../__tests__/fixtures/postcss-naive-css-in-js.js';

const naiveCssInJs = require('../../../__tests__/fixtures/postcss-naive-css-in-js');

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down
@@ -1,8 +1,7 @@
'use strict';
import naiveCssInJs from '../../../__tests__/fixtures/postcss-naive-css-in-js.js';

const naiveCssInJs = require('../../../__tests__/fixtures/postcss-naive-css-in-js');

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down
@@ -1,8 +1,7 @@
'use strict';
import naiveCssInJs from '../../../__tests__/fixtures/postcss-naive-css-in-js.js';

const naiveCssInJs = require('../../../__tests__/fixtures/postcss-naive-css-in-js');

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down
@@ -1,8 +1,7 @@
'use strict';
import naiveCssInJs from '../../../__tests__/fixtures/postcss-naive-css-in-js.js';

const naiveCssInJs = require('../../../__tests__/fixtures/postcss-naive-css-in-js');

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down
@@ -1,6 +1,5 @@
'use strict';

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down
@@ -1,8 +1,7 @@
'use strict';
import { stripIndent } from 'common-tags';

const stripIndent = require('common-tags').stripIndent;

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down
@@ -1,6 +1,5 @@
'use strict';

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down
@@ -1,6 +1,5 @@
'use strict';

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down
@@ -1,6 +1,5 @@
'use strict';

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down
@@ -1,6 +1,5 @@
'use strict';

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down
@@ -1,6 +1,5 @@
'use strict';

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down
@@ -1,6 +1,5 @@
'use strict';

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down
@@ -1,6 +1,5 @@
'use strict';

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down
@@ -1,6 +1,5 @@
'use strict';

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

const variablePositiveTests = [
{
Expand Down
@@ -1,6 +1,5 @@
'use strict';

const { messages, ruleName } = require('..');
import rule from '../index.js';
const { messages, ruleName } = rule;

testRule({
ruleName,
Expand Down

0 comments on commit b919a0b

Please sign in to comment.