Skip to content

Commit

Permalink
chore: Do not allow empty provider states
Browse files Browse the repository at this point in the history
  • Loading branch information
tienvx committed Mar 30, 2024
1 parent 0922d54 commit 6ed44c4
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 4 deletions.
3 changes: 3 additions & 0 deletions src/Controller/MessagesController.php
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,9 @@ private function getProviderStates(Request $request): array
if (!is_array($providerStates)) {
throw new BadRequestException("'providerStates' is invalid in messages request.");
}
if (empty($providerStates)) {
throw new BadRequestException("'providerStates' should not be empty in messages request.");
}

return array_map(function (array $providerState): ProviderState {
$name = $providerState['name'] ?? null;
Expand Down
7 changes: 3 additions & 4 deletions tests/Application/Controller/MessagesControllerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,9 @@ public function testEmptyProviderStates(): void
'description' => 'has message',
'providerStates' => [],
]));
$this->assertResponseStatusCodeSame(200);
$this->assertResponseHeaderSame('Content-Type', 'text/plain; charset=UTF-8');
$this->assertResponseHeaderSame('Pact-Message-Metadata', 'eyJrZXkiOiJ2YWx1ZSIsImNvbnRlbnRUeXBlIjoidGV4dFwvcGxhaW4ifQ==');
$this->assertStringContainsString('message content', $client->getResponse()->getContent());
// @todo Check this behavior
$this->assertResponseStatusCodeSame(400);
$this->assertStringContainsString("'providerStates' should not be empty in messages request.", $client->getResponse()->getContent());
}

public function testMissingProviderStateName(): void
Expand Down

0 comments on commit 6ed44c4

Please sign in to comment.