From 82bc0d982a615d9b186f914b41a3fa3e219c88cd Mon Sep 17 00:00:00 2001 From: Jake Hotson Date: Thu, 5 Feb 2026 19:22:56 +0000 Subject: [PATCH 1/2] [TASK] Render selector combinators with surrounding spaces by default Part of #1325. --- src/Property/Selector/Combinator.php | 2 +- .../Unit/Property/Selector/CombinatorTest.php | 41 ++++++++++--------- 2 files changed, 22 insertions(+), 21 deletions(-) diff --git a/src/Property/Selector/Combinator.php b/src/Property/Selector/Combinator.php index 4c2f6694..70800913 100644 --- a/src/Property/Selector/Combinator.php +++ b/src/Property/Selector/Combinator.php @@ -96,7 +96,7 @@ public function getSpecificity(): int public function render(OutputFormat $outputFormat): string { // TODO: allow optional spacing controlled via OutputFormat - return $this->getValue(); + return $this->value !== ' ' ? ' ' . $this->value . ' ' : ' '; } /** diff --git a/tests/Unit/Property/Selector/CombinatorTest.php b/tests/Unit/Property/Selector/CombinatorTest.php index 07434581..21574834 100644 --- a/tests/Unit/Property/Selector/CombinatorTest.php +++ b/tests/Unit/Property/Selector/CombinatorTest.php @@ -37,15 +37,15 @@ public function implementsSelectorComponent(): void } /** - * @return array + * @return array */ - public static function provideValidValue(): array + public static function provideValidValueAndDefaultRendering(): array { return [ - 'descendent' => [' '], - 'child' => ['>'], - 'next sibling' => ['+'], - 'subsequent sibling' => ['~'], + 'descendent' => [' ', ' '], + 'child' => ['>', ' > '], + 'next sibling' => ['+', ' + '], + 'subsequent sibling' => ['~', ' ~ '], ]; } @@ -68,7 +68,7 @@ public static function provideInvalidValue(): array * * @param ValidCombinatorValue $combinator * - * @dataProvider provideValidValue + * @dataProvider provideValidValueAndDefaultRendering */ public function parsesValidCombinator(string $combinator): void { @@ -96,7 +96,7 @@ public function parseThrowsExceptionWithInvalidCombinator(string $selectorCompon * * @param ValidCombinatorValue $combinator * - * @dataProvider provideValidValue + * @dataProvider provideValidValueAndDefaultRendering */ public function parsesCombinatorWithCommentBefore(string $combinator): void { @@ -110,7 +110,7 @@ public function parsesCombinatorWithCommentBefore(string $combinator): void * * @param ValidCombinatorValue $combinator * - * @dataProvider provideValidValue + * @dataProvider provideValidValueAndDefaultRendering */ public function parsesCombinatorWithCommentAfter(string $combinator): void { @@ -124,7 +124,7 @@ public function parsesCombinatorWithCommentAfter(string $combinator): void * * @param ValidCombinatorValue $combinator * - * @dataProvider provideValidValue + * @dataProvider provideValidValueAndDefaultRendering */ public function parseExtractsCommentBefore(string $combinator): void { @@ -139,7 +139,7 @@ public function parseExtractsCommentBefore(string $combinator): void * * @param ValidCombinatorValue $combinator * - * @dataProvider provideValidValue + * @dataProvider provideValidValueAndDefaultRendering */ public function parseExtractsCommentAfter(string $combinator): void { @@ -154,7 +154,7 @@ public function parseExtractsCommentAfter(string $combinator): void * * @param ValidCombinatorValue $value * - * @dataProvider provideValidValue + * @dataProvider provideValidValueAndDefaultRendering */ public function constructsWithValueProvided(string $value): void { @@ -182,7 +182,7 @@ public function constructorThrowsExceptionWithInvalidValue(string $value): void * * @param ValidCombinatorValue $value * - * @dataProvider provideValidValue + * @dataProvider provideValidValueAndDefaultRendering */ public function setValueSetsValueProvided(string $value): void { @@ -214,7 +214,7 @@ public function setValueThrowsExceptionWithInvalidValue(string $value): void * * @param ValidCombinatorValue $value * - * @dataProvider provideValidValue + * @dataProvider provideValidValueAndDefaultRendering */ public function getValueReturnsValueProvidedToConstructor(string $value): void { @@ -230,7 +230,7 @@ public function getValueReturnsValueProvidedToConstructor(string $value): void * * @param ValidCombinatorValue $value * - * @dataProvider provideValidValue + * @dataProvider provideValidValueAndDefaultRendering */ public function getValueReturnsValueProvidedToSetValue(string $value): void { @@ -247,7 +247,7 @@ public function getValueReturnsValueProvidedToSetValue(string $value): void * * @param ValidCombinatorValue $value * - * @dataProvider provideValidValue + * @dataProvider provideValidValueAndDefaultRendering */ public function hasNoSpecificity(string $value): void { @@ -260,14 +260,15 @@ public function hasNoSpecificity(string $value): void * @test * * @param ValidCombinatorValue $value + * @param non-empty-string $expectedRendering * - * @dataProvider provideValidValue + * @dataProvider provideValidValueAndDefaultRendering */ - public function renderReturnsValueProvided(string $value): void + public function renderReturnsDefaultRenderingForValueProvided(string $value, string $expectedRendering): void { $subject = new Combinator($value); - self::assertSame($value, $subject->render(OutputFormat::create())); + self::assertSame($expectedRendering, $subject->render(OutputFormat::create())); } /** @@ -287,7 +288,7 @@ public function getArrayRepresentationIncludesClassName(): void * * @param ValidCombinatorValue $value * - * @dataProvider provideValidValue + * @dataProvider provideValidValueAndDefaultRendering */ public function getArrayRepresentationIncludesValue(string $value): void { From 3fca43c71e6ff7ef2c3eb31d3827c66fbbd162f4 Mon Sep 17 00:00:00 2001 From: JakeQZ Date: Thu, 5 Feb 2026 19:57:39 +0000 Subject: [PATCH 2/2] Make ternary operator code more readable Co-authored-by: Oliver Klee --- src/Property/Selector/Combinator.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Property/Selector/Combinator.php b/src/Property/Selector/Combinator.php index 70800913..73a5a94b 100644 --- a/src/Property/Selector/Combinator.php +++ b/src/Property/Selector/Combinator.php @@ -96,7 +96,7 @@ public function getSpecificity(): int public function render(OutputFormat $outputFormat): string { // TODO: allow optional spacing controlled via OutputFormat - return $this->value !== ' ' ? ' ' . $this->value . ' ' : ' '; + return $this->value !== ' ' ? (' ' . $this->value . ' ') : ' '; } /**