From ee96bef6ff0ab276ea7ab7c9ea41175ba923b5a8 Mon Sep 17 00:00:00 2001 From: Pamela Lozano <30474787+pamelalozano16@users.noreply.github.com> Date: Mon, 27 Nov 2023 13:16:38 -0800 Subject: [PATCH] Check selector list for parent selectors in at-root-no-redundant (#886) --- src/rules/at-root-no-redundant/__tests__/index.js | 15 +++++++++++++++ src/rules/at-root-no-redundant/index.js | 3 +-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/rules/at-root-no-redundant/__tests__/index.js b/src/rules/at-root-no-redundant/__tests__/index.js index c63d57e8..d3680819 100644 --- a/src/rules/at-root-no-redundant/__tests__/index.js +++ b/src/rules/at-root-no-redundant/__tests__/index.js @@ -74,6 +74,12 @@ testRule({ `, description: "@at-root is followed by a nested selector containing`&` outside interpolation." + }, + { + code: ` + .a { @at-root c &, .a#{&}.b { c: d } } + `, + description: "selector list, contains interpolation" } ], reject: [ @@ -158,6 +164,15 @@ testRule({ message: messages.rejected, description: "@at-root is followed by selectors all containing `&` outside interpolation." + }, + { + code: ` + .a { @at-root .a & .b, .c & { c: d } } + `, + line: 2, + column: 12, + message: messages.rejected, + description: "selector list, all redundant" } ] }); diff --git a/src/rules/at-root-no-redundant/index.js b/src/rules/at-root-no-redundant/index.js index 6d346c61..04fba049 100644 --- a/src/rules/at-root-no-redundant/index.js +++ b/src/rules/at-root-no-redundant/index.js @@ -39,9 +39,8 @@ function rule(actual, _, context) { if ( node.parent.type === "root" || node.params - .replace(/#{.*}/g, "") .split(",") - .every(param => param.includes("&")) || + .every(elem => elem.replace(/#{.*}/g, "").includes("&")) || isWithinKeyframes(node) ) { if (context.fix) {