Skip to content

Conversation

jrfnl
Copy link
Member

@jrfnl jrfnl commented Mar 22, 2025

Description

The PropertyTypeHandlingTest class tests the setting of property values from the ruleset as well as via inline // phpcs:set ... annotations.

As both ways of setting the property value should be supported in the same manner, the tests used one data provider for both tests and the fixtures (PropertyTypeHandlingTest.xml ruleset and the Fixtures/PropertyTypeHandlingInline.inc file containing the inline annotations) mirrored the exact same test cases.

There is one feature, however, which is only supported when setting properties via the ruleset, not when setting them via inline annotations: array property extending.

Until now, the tests for that were also mirrored in the inline annotation tests, even though the feature isn't supported for inline annotations.

This commit now splits the data provider in two:

  • One data provider for the tests which apply for both (= most tests).
  • One specifically for extending array properties.

That second data provider will now only be used by the testTypeHandlingWhenSetViaRuleset() test method.

This should make it more straight-forward to add additional tests for property extending in the future.


In case anyone is wondering: As phpcs:set is only supposed to be used in tests, I don't think adding support for the extend option to inline properties is necessary.

Suggested changelog entry

N/A

The `PropertyTypeHandlingTest` class tests the setting of property values from the ruleset as well as via inline `// phpcs:set ...`  annotations.

As both ways of setting the property value should be supported in the same manner, the tests used one data provider for both tests and the fixtures (`PropertyTypeHandlingTest.xml` ruleset and the `Fixtures/PropertyTypeHandlingInline.inc` file containing the inline annotations) mirrored the exact same test cases.

There is one feature, however, which is only supported when setting properties via the ruleset, not when setting them via inline annotations: array property extending.

Until now, the tests for that were also mirrored in the inline annotation tests, even though the feature isn't supported for inline annotations.

This commit now splits the data provider in two:
* One data provider for the tests which apply for both (= most tests).
* One specifically for extending array properties.

That second data provider will now only be used by the `testTypeHandlingWhenSetViaRuleset()` test method.

This should make it more straight-forward to add additional tests for property extending in the future.

---

In case anyone is wondering: As `phpcs:set` is only supposed to be used in tests, I don't think adding support for the `extend` option to inline properties is necessary.
@jrfnl jrfnl added this to the 3.12.1 milestone Mar 22, 2025
@jrfnl jrfnl merged commit a0a4980 into master Mar 22, 2025
61 checks passed
@jrfnl jrfnl deleted the feature/propertytypehandingtest-split-dataprovider branch March 22, 2025 08:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant