@@ -26,6 +26,18 @@ const document = {
26
26
message : cloneDeep ( headersBearer ) ,
27
27
} ,
28
28
} ,
29
+ 'users/{userId}/loggedIn' : {
30
+ publish : {
31
+ message : {
32
+ traits : [ cloneDeep ( headersBearer ) ] ,
33
+ } ,
34
+ } ,
35
+ subscribe : {
36
+ message : {
37
+ traits : [ cloneDeep ( headersBearer ) ] ,
38
+ } ,
39
+ } ,
40
+ } ,
29
41
} ,
30
42
components : {
31
43
messageTraits : {
@@ -131,5 +143,34 @@ testRule('asyncapi-headers-schema-type-object', [
131
143
} ,
132
144
] ,
133
145
} ,
146
+
147
+ {
148
+ name : `channels.{channel}.${ property } .message.traits.[*].headers lacks "type" property` ,
149
+ document : produce ( document , draft => {
150
+ draft . channels [ 'users/{userId}/loggedIn' ] [ property ] . message . traits [ 0 ] . headers = { const : 'Hello World!' } ;
151
+ } ) ,
152
+ errors : [
153
+ {
154
+ message : 'Headers schema type must be "object" ("headers" property must have required property "type").' ,
155
+ path : [ 'channels' , 'users/{userId}/loggedIn' , property , 'message' , 'traits' , '0' , 'headers' ] ,
156
+ severity : DiagnosticSeverity . Error ,
157
+ } ,
158
+ ] ,
159
+ } ,
160
+
161
+ {
162
+ name : `channels.{channel}.${ property } .message.traits.[*].headers is not of type "object"` ,
163
+ document : produce ( document , draft => {
164
+ draft . channels [ 'users/{userId}/loggedIn' ] [ property ] . message . traits [ 0 ] . headers = { type : 'integer' } ;
165
+ } ) ,
166
+ errors : [
167
+ {
168
+ message :
169
+ 'Headers schema type must be "object" ("type" property must be equal to one of the allowed values: "object". Did you mean "object"?).' ,
170
+ path : [ 'channels' , 'users/{userId}/loggedIn' , property , 'message' , 'traits' , '0' , 'headers' , 'type' ] ,
171
+ severity : DiagnosticSeverity . Error ,
172
+ } ,
173
+ ] ,
174
+ } ,
134
175
] ) ,
135
176
] ) ;
0 commit comments