-
Notifications
You must be signed in to change notification settings - Fork 11
/
headers.feature
138 lines (133 loc) · 3.1 KB
/
headers.feature
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
@javascript
Feature: Headers validation
Background:
Given I expect "headers" to equal:
"""
Accept: text/plain
Content-Type: application/json
"""
Scenario: Matching headers
Given the actual "headers" equals:
"""
Accept: text/plain
Content-Type: application/json
"""
When Gavel validates the HTTP message
Then the actual HTTP message is valid
And the result field "headers" equals:
"""
{
"valid": true,
"kind": "json",
"values": {
"expected": {
"accept": "text/plain",
"content-type": "application/json"
},
"actual": {
"accept": "text/plain",
"content-type": "application/json"
}
},
"errors": []
}
"""
Scenario: Missing header
Given the actual "headers" equals:
"""
Accept: text/plain
"""
When Gavel validates the HTTP message
Then the actual HTTP message is NOT valid
And the result field "headers" equals:
"""
{
"valid": false,
"kind": "json",
"values": {
"expected": {
"accept": "text/plain",
"content-type": "application/json"
},
"actual": {
"accept": "text/plain"
}
},
"errors": [
{
"message": "At '/content-type' Missing required property: content-type",
"location": {
"pointer": "/content-type",
"property": ["content-type"]
}
}
]
}
"""
Scenario: Extra header
Given the actual "headers" equals:
"""
Accept: text/plain
Accept-Language: en-US
Content-Type: application/json
"""
When Gavel validates the HTTP message
Then the actual HTTP message is valid
And the result field "headers" equals:
"""
{
"valid": true,
"kind": "json",
"values": {
"expected": {
"accept": "text/plain",
"content-type": "application/json"
},
"actual": {
"accept": "text/plain",
"accept-language": "en-us",
"content-type": "application/json"
}
},
"errors": []
}
"""
Scenario: Non-matching headers
Given the actual "headers" equals:
"""
Content-Encoding: gzip
"""
When Gavel validates the HTTP message
Then the actual HTTP message is NOT valid
And the result field "headers" equals:
"""
{
"valid": false,
"kind": "json",
"values": {
"expected": {
"accept": "text/plain",
"content-type": "application/json"
},
"actual": {
"content-encoding": "gzip"
}
},
"errors": [
{
"message": "At '/accept' Missing required property: accept",
"location": {
"pointer": "/accept",
"property": ["accept"]
}
},
{
"message": "At '/content-type' Missing required property: content-type",
"location": {
"pointer": "/content-type",
"property": ["content-type"]
}
}
]
}
"""