From eaf3b5788facdb4ef6bf291ced4c2f2866978c24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=94=AF=E7=84=B6?= Date: Tue, 12 Mar 2024 10:46:00 +0800 Subject: [PATCH] chore: add flat config tests --- tests/lib/configs/{configs.js => eslintrc.js} | 1 - tests/lib/configs/flat.js | 98 +++++++++++++++++++ 2 files changed, 98 insertions(+), 1 deletion(-) rename tests/lib/configs/{configs.js => eslintrc.js} (96%) create mode 100644 tests/lib/configs/flat.js diff --git a/tests/lib/configs/configs.js b/tests/lib/configs/eslintrc.js similarity index 96% rename from tests/lib/configs/configs.js rename to tests/lib/configs/eslintrc.js index 2e7bba65f..a9febaeeb 100644 --- a/tests/lib/configs/configs.js +++ b/tests/lib/configs/eslintrc.js @@ -3,7 +3,6 @@ const { ESLint } = require('../../eslint-compat') const plugin = require('../../../lib/index') -// TODO: test flat configs describe('eslintrc configs', () => { for (const name of Object.keys(plugin.configs)) { if (name.startsWith('flat/')) { diff --git a/tests/lib/configs/flat.js b/tests/lib/configs/flat.js new file mode 100644 index 000000000..86dc2b0b0 --- /dev/null +++ b/tests/lib/configs/flat.js @@ -0,0 +1,98 @@ +/** + * @fileoverview flat configs test + * @author 唯然 + */ + +'use strict' + +const plugin = require('../../../lib/index') +const assert = require('assert/strict') + +describe('flat configs', () => { + it('should export base config', () => { + const base = plugin.configs['flat/base'] + assert.ok(base) + assert.equal(typeof base, 'object') + assert.strictEqual(base.plugins.vue, plugin) + assert.strictEqual(base.rules['vue/comment-directive'], 'error') + }) + it('should export essential config', () => { + const essential = plugin.configs['flat/essential'] + assert.ok(essential) + assert.equal(typeof essential, 'object') + assert.strictEqual(essential.plugins.vue, plugin) + assert.strictEqual(essential.rules['vue/comment-directive'], 'error') + assert.strictEqual( + essential.rules['vue/multi-word-component-names'], + 'error' + ) + }) + + it('should export strongly-recommended config', () => { + const stronglyRecommended = plugin.configs['flat/vue2-strongly-recommended'] + assert.ok(stronglyRecommended) + assert.equal(typeof stronglyRecommended, 'object') + assert.strictEqual(stronglyRecommended.plugins.vue, plugin) + assert.strictEqual( + stronglyRecommended.rules['vue/comment-directive'], + 'error' + ) + assert.strictEqual( + stronglyRecommended.rules['vue/multi-word-component-names'], + 'error' + ) + }) + + it('should export recommended config', () => { + const recommended = plugin.configs['flat/recommended'] + assert.ok(recommended) + assert.equal(typeof recommended, 'object') + assert.strictEqual(recommended.plugins.vue, plugin) + assert.strictEqual(recommended.rules['vue/comment-directive'], 'error') + assert.strictEqual( + recommended.rules['vue/multi-word-component-names'], + 'error' + ) + assert.strictEqual(recommended.rules['vue/attributes-order'], 'warn') + }) + + it('should export vue2-essential config', () => { + const essential = plugin.configs['flat/vue2-essential'] + assert.ok(essential) + assert.equal(typeof essential, 'object') + assert.strictEqual(essential.plugins.vue, plugin) + assert.strictEqual(essential.rules['vue/comment-directive'], 'error') + assert.strictEqual( + essential.rules['vue/multi-word-component-names'], + 'error' + ) + }) + + it('should export vue2-strongly-recommended config', () => { + const stronglyRecommended = plugin.configs['flat/vue2-strongly-recommended'] + assert.ok(stronglyRecommended) + assert.equal(typeof stronglyRecommended, 'object') + assert.strictEqual(stronglyRecommended.plugins.vue, plugin) + assert.strictEqual( + stronglyRecommended.rules['vue/comment-directive'], + 'error' + ) + assert.strictEqual( + stronglyRecommended.rules['vue/multi-word-component-names'], + 'error' + ) + }) + + it('should export vue2-recommended config', () => { + const recommended = plugin.configs['flat/vue2-recommended'] + assert.ok(recommended) + assert.equal(typeof recommended, 'object') + assert.strictEqual(recommended.plugins.vue, plugin) + assert.strictEqual(recommended.rules['vue/comment-directive'], 'error') + assert.strictEqual( + recommended.rules['vue/multi-word-component-names'], + 'error' + ) + assert.strictEqual(recommended.rules['vue/attributes-order'], 'warn') + }) +})