'use strict'; const { expect } = require('chai'); const { parse, serialize, } = require('../../../../xml/register-party/created-party-registration'); const { createdPartyRegistrationMinXml, createdPartyRegistrationMaxXml, createdPartyRegistrationMissingRequiredXml, } = require('./xml-responses'); const { createdPartyRegistrationMin, createdPartyRegistrationMax, } = require('./js-responses'); describe('Created Party Registration', function() { describe('parse', function() { it('successfully parses min xml', async function() { const parsedResponse = await parse(createdPartyRegistrationMinXml); expect(parsedResponse).to.eql(createdPartyRegistrationMin); }); it('successfully parses max xml', async function() { const parsedResponse = await parse(createdPartyRegistrationMaxXml); expect(parsedResponse).to.eql(createdPartyRegistrationMax); }); it('successfully parses serialized value', async function() { const serialized = serialize(createdPartyRegistrationMax); const parsedResponse = await parse(serialized); expect(parsedResponse).to.eql(createdPartyRegistrationMax); }); it('throws Error on missing required field', async function() { let lastError; try { await parse(createdPartyRegistrationMissingRequiredXml); } catch (e) { lastError = e; } expect(lastError).to.be.an('error'); }); }); describe('serialize', function() { it('successfully serializes valid object', async function() { const serializedResponse = await serialize(createdPartyRegistrationMax); expect(serializedResponse).to.eql( '200OK43233bd3c02dc6965c8b92403f59d85fbdf3997dbeb1VTN_ID12.0bsimpleHttpPT10S', ); }); }); });