Skip to content

Commit

Permalink
qa: add failing unit tests
Browse files Browse the repository at this point in the history
Signed-off-by: Maximilian Bösing <[email protected]>
  • Loading branch information
boesing committed Dec 1, 2022
1 parent eb13aa3 commit 71f7c87
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 0 deletions.
32 changes: 32 additions & 0 deletions tests/acceptance/PrintfArgumentCountMismatch.feature
Original file line number Diff line number Diff line change
Expand Up @@ -174,3 +174,35 @@ FOO;
| Type | Message |
| TooFewArguments | Template passed to function `printf` requires 3 specifier but 2 are passed. |
And I see no other errors

Scenario: template contains more than 1000 characters (exceeding maxStringLength) stored in a class constant
Given I have the following code
"""
final class Foo
{
public const TEMPLATE = 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis a: %s';
}
printf(Foo::TEMPLATE);
"""
When I run Psalm
Then I see these errors
| Type | Message |
| TooFewArguments | Template passed to function `printf` requires 1 specifier but 0 are passed. |
And I see no other errors

Scenario: template contains more than 1000 characters (exceeding maxStringLength) stored in a constant
Given I have the following code
"""
const TEMPLATE = 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis a: %s';
printf(TEMPLATE);
"""
When I run Psalm
Then I see these errors
| Type | Message |
| TooFewArguments | Template passed to function `printf` requires 1 specifier but 0 are passed. |
And I see no other errors
18 changes: 18 additions & 0 deletions tests/acceptance/SprintfArgumentCountMismatch.feature
Original file line number Diff line number Diff line change
Expand Up @@ -188,3 +188,21 @@ FOO;
| Type | Message |
| TooFewArguments | Template passed to function `sprintf` requires 3 specifier but 2 are passed. |
And I see no other errors

Scenario: template contains more than 1000 characters stored in a class constant
Given I have the following code
"""
final class Foo
{
public const TEMPLATE = 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis a: %s';
}
sprintf(Foo::TEMPLATE);
"""
When I run Psalm
Then I see these errors
| Type | Message |
| TooFewArguments | Template passed to function `sprintf` requires 1 specifier but 0 are passed. |
And I see no other errors

0 comments on commit 71f7c87

Please sign in to comment.