import assert from 'assert' ; import { Envelope , parseEnvelope } from '../src/index.js' ; describe ( 'messages' , ( ) => { it ( 'defaults missing fields when deserialising from JSON' , ( ) => { const partialGherkinDocumentEnvelope = { gherkinDocument : { feature : { children : [ { scenario : { id : '1' , keyword : 'Scenario' , location : { column : 3 , line : 3 } , name : 'minimalistic' , steps : [ { id : '0' , keyword : 'Given ' , location : { column : 5 , line : 4 } , text : 'the minimalism' , } , ] , } , } , ] , keyword : 'Feature' , language : 'en' , location : { column : 1 , line : 1 } , name : 'Minimal' , } , uri : 'testdata/good/minimal.feature' , } , } ; const envelope = parseEnvelope ( JSON . stringify ( partialGherkinDocumentEnvelope ) ) ; const expectedEnvelope = { gherkinDocument : { comments : [ ] , feature : { tags : [ ] , description : '' , children : [ { scenario : { examples : [ ] , description : '' , tags : [ ] , id : '1' , keyword : 'Scenario' , location : { column : 3 , line : 3 } , name : 'minimalistic' , steps : [ { id : '0' , keyword : 'Given ' , location : { column : 5 , line : 4 } , text : 'the minimalism' , } , ] , } , } , ] , keyword : 'Feature' , language : 'en' , location : { column : 1 , line : 1 } , name : 'Minimal' , } , uri : 'testdata/good/minimal.feature' , } , } ; assert . deepStrictEqual ( JSON . parse ( JSON . stringify ( envelope ) ) , JSON . parse ( JSON . stringify ( expectedEnvelope ) ) ) ; } ) ; } ) ;