From 1ac83c9e64167e56616e1b4b49204f502d7f4fd5 Mon Sep 17 00:00:00 2001 From: Hugo <60015232+hugop95@users.noreply.github.com> Date: Sun, 9 Mar 2025 16:47:34 +0100 Subject: [PATCH] fix(sort-imports): fix explicit fallback sort overriding side-effects --- test/rules/sort-imports.test.ts | 25 +++++++++++++++++++++++++ utils/compare.ts | 4 ++++ 2 files changed, 29 insertions(+) diff --git a/test/rules/sort-imports.test.ts b/test/rules/sort-imports.test.ts index 6e734b83..baa2758e 100644 --- a/test/rules/sort-imports.test.ts +++ b/test/rules/sort-imports.test.ts @@ -1829,6 +1829,31 @@ describe(ruleName, () => { valid: [], }, ) + + ruleTester.run( + `${ruleName}(${type}): does not sort side-effects and side-effect-style even with fallback sort`, + rule, + { + valid: [ + { + options: [ + { + groups: ['side-effect', 'side-effect-style'], + fallbackSort: { type: 'alphabetical' }, + }, + ], + code: dedent` + import 'b'; + import 'a'; + + import 'b.css'; + import 'a.css'; + `, + }, + ], + invalid: [], + }, + ) }) ruleTester.run( diff --git a/utils/compare.ts b/utils/compare.ts index f2281c7c..1f470916 100644 --- a/utils/compare.ts +++ b/utils/compare.ts @@ -30,6 +30,10 @@ export let compare = ({ a, b, }: CompareParameters): number => { + if (options.type === 'unsorted') { + return 0 + } + let finalNodeValueGetter = nodeValueGetter ?? ((node: T) => node.name) let compareValue = computeCompareValue({ nodeValueGetter: finalNodeValueGetter,