@@ -102,7 +102,7 @@ describe("HTTP transport", () => {
102102
103103 it ( "Binary Messages can be created from a CloudEvent" , ( ) => {
104104 const message : Message = HTTP . binary ( fixture ) ;
105- expect ( JSON . parse ( message . body ) ) . to . deep . equal ( data ) ;
105+ expect ( message . body ) . to . equal ( JSON . stringify ( data ) ) ;
106106 // validate all headers
107107 expect ( message . headers [ CONSTANTS . HEADER_CONTENT_TYPE ] ) . to . equal ( datacontenttype ) ;
108108 expect ( message . headers [ CONSTANTS . CE_HEADERS . SPEC_VERSION ] ) . to . equal ( Version . V1 ) ;
@@ -120,7 +120,7 @@ describe("HTTP transport", () => {
120120 const message : Message = HTTP . structured ( fixture ) ;
121121 expect ( message . headers [ CONSTANTS . HEADER_CONTENT_TYPE ] ) . to . equal ( CONSTANTS . DEFAULT_CE_CONTENT_TYPE ) ;
122122 // Parse the message body as JSON, then validate the attributes
123- const body = JSON . parse ( message . body ) ;
123+ const body = JSON . parse ( message . body as string ) ;
124124 expect ( body [ CONSTANTS . CE_ATTRIBUTES . SPEC_VERSION ] ) . to . equal ( Version . V1 ) ;
125125 expect ( body [ CONSTANTS . CE_ATTRIBUTES . ID ] ) . to . equal ( id ) ;
126126 expect ( body [ CONSTANTS . CE_ATTRIBUTES . TYPE ] ) . to . equal ( type ) ;
@@ -147,6 +147,7 @@ describe("HTTP transport", () => {
147147 it ( "Supports Base-64 encoded data in structured messages" , ( ) => {
148148 const event = fixture . cloneWith ( { data : dataBinary } ) ;
149149 expect ( event . data_base64 ) . to . equal ( data_base64 ) ;
150+ expect ( event . data ) . to . equal ( dataBinary ) ;
150151 const message = HTTP . structured ( event ) ;
151152 const eventDeserialized = HTTP . toEvent ( message ) ;
152153 expect ( eventDeserialized . data ) . to . deep . equal ( { foo : "bar" } ) ;
@@ -155,9 +156,11 @@ describe("HTTP transport", () => {
155156 it ( "Supports Base-64 encoded data in binary messages" , ( ) => {
156157 const event = fixture . cloneWith ( { data : dataBinary } ) ;
157158 expect ( event . data_base64 ) . to . equal ( data_base64 ) ;
159+ expect ( event . data ) . to . equal ( dataBinary ) ;
158160 const message = HTTP . binary ( event ) ;
161+ expect ( message . body ) . to . equal ( dataBinary ) ;
159162 const eventDeserialized = HTTP . toEvent ( message ) ;
160- expect ( eventDeserialized . data ) . to . deep . equal ( { foo : "bar" } ) ;
163+ expect ( eventDeserialized . data ) . to . equal ( dataBinary ) ;
161164 } ) ;
162165 } ) ;
163166
@@ -196,7 +199,7 @@ describe("HTTP transport", () => {
196199 const message : Message = HTTP . structured ( fixture ) ;
197200 expect ( message . headers [ CONSTANTS . HEADER_CONTENT_TYPE ] ) . to . equal ( CONSTANTS . DEFAULT_CE_CONTENT_TYPE ) ;
198201 // Parse the message body as JSON, then validate the attributes
199- const body = JSON . parse ( message . body ) ;
202+ const body = JSON . parse ( message . body as string ) ;
200203 expect ( body [ CONSTANTS . CE_ATTRIBUTES . SPEC_VERSION ] ) . to . equal ( Version . V03 ) ;
201204 expect ( body [ CONSTANTS . CE_ATTRIBUTES . ID ] ) . to . equal ( id ) ;
202205 expect ( body [ CONSTANTS . CE_ATTRIBUTES . TYPE ] ) . to . equal ( type ) ;
@@ -221,19 +224,27 @@ describe("HTTP transport", () => {
221224 } ) ;
222225
223226 it ( "Supports Base-64 encoded data in structured messages" , ( ) => {
224- const event = fixture . cloneWith ( { data : dataBinary , datacontentencoding } ) ;
225- expect ( event . data_base64 ) . to . equal ( data_base64 ) ;
227+ const event = fixture . cloneWith ( { data : data_base64 , datacontentencoding } ) ;
226228 const message = HTTP . structured ( event ) ;
229+ expect ( JSON . parse ( message . body as string ) . data ) . to . equal ( data_base64 ) ;
230+ // An incoming event with datacontentencoding set to base64,
231+ // and encoded data, should decode the data before setting
232+ // the .data property on the event
227233 const eventDeserialized = HTTP . toEvent ( message ) ;
228234 expect ( eventDeserialized . data ) . to . deep . equal ( { foo : "bar" } ) ;
235+ expect ( eventDeserialized . datacontentencoding ) . to . be . undefined ;
229236 } ) ;
230237
231238 it ( "Supports Base-64 encoded data in binary messages" , ( ) => {
232- const event = fixture . cloneWith ( { data : dataBinary , datacontentencoding } ) ;
233- expect ( event . data_base64 ) . to . equal ( data_base64 ) ;
239+ const event = fixture . cloneWith ( { data : data_base64 , datacontentencoding } ) ;
234240 const message = HTTP . binary ( event ) ;
241+ expect ( message . body ) . to . equal ( data_base64 ) ;
242+ // An incoming event with datacontentencoding set to base64,
243+ // and encoded data, should decode the data before setting
244+ // the .data property on the event
235245 const eventDeserialized = HTTP . toEvent ( message ) ;
236246 expect ( eventDeserialized . data ) . to . deep . equal ( { foo : "bar" } ) ;
247+ expect ( eventDeserialized . datacontentencoding ) . to . be . undefined ;
237248 } ) ;
238249 } ) ;
239250} ) ;
0 commit comments