Skip to content

Commit 313ecf7

Browse files
fix: response headers are not required by default (#88)
1 parent b59b697 commit 313ecf7

File tree

3 files changed

+11
-4
lines changed

3 files changed

+11
-4
lines changed

src/PSR7/Validators/HeadersValidator.php

+1-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
namespace League\OpenAPIValidation\PSR7\Validators;
66

7-
use GuzzleHttp\Psr7\Response;
87
use League\OpenAPIValidation\PSR7\Exception\Validation\InvalidHeaders;
98
use League\OpenAPIValidation\PSR7\MessageValidator;
109
use League\OpenAPIValidation\PSR7\OperationAddress;
@@ -34,7 +33,7 @@ public function validate(OperationAddress $addr, MessageInterface $message) : vo
3433

3534
// Check if message misses required headers
3635
foreach ($headerSpecs as $header => $spec) {
37-
if (($message instanceof Response || $spec->required) && ! $message->hasHeader($header)) {
36+
if ($spec->required && ! $message->hasHeader($header)) {
3837
throw InvalidHeaders::becauseOfMissingRequiredHeader($header, $addr);
3938
}
4039

tests/PSR7/ValidateResponseTest.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -68,11 +68,11 @@ public function testItValidatesMessageWrongHeaderValueRed() : void
6868
{
6969
$addr = new OperationAddress('/path1', 'get');
7070

71-
$response = $this->makeGoodResponse('/path1', 'get')->withHeader('Header-B', 'wrong value');
71+
$response = $this->makeGoodResponse('/path1', 'get')->withHeader('Header-C', 'wrong value');
7272

7373
$this->expectException(InvalidHeaders::class);
7474
$this->expectExceptionMessage(
75-
'Value "wrong value" for header "Header-B" is invalid for Response [get /path1 200]'
75+
'Value "wrong value" for header "Header-C" is invalid for Response [get /path1 200]'
7676
);
7777

7878
$validator = (new ValidatorBuilder())->fromYamlFile($this->apiSpecFile)->getResponseValidator();

tests/stubs/api.yaml

+8
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ paths:
8989
description: posted
9090
headers:
9191
Set-Cookie:
92+
required: true
9293
schema:
9394
type: string
9495
content:
@@ -106,6 +107,13 @@ paths:
106107
description: fake endpoint
107108
headers:
108109
Header-B:
110+
required: true
111+
schema:
112+
type: string
113+
enum:
114+
- good value
115+
- another good value
116+
Header-C:
109117
schema:
110118
type: string
111119
enum:

0 commit comments

Comments
 (0)