'use strict'; const { expect } = require('chai'); const { parse, serialize, } = require('../../../../xml/register-party/create-party-registration'); const { createPartyRegistrationMissingRequiredXml, createPartyRegistrationMinXml, createPartyRegistrationMaxXml, createPartyRegistrationIllegalBooleanXml, } = require('./xml-requests'); const { createPartyRegistrationMin, createPartyRegistrationMax, } = require('./js-requests'); describe('Create Party Registration', function() { describe('parse', function() { it('successfully parses min xml', async function() { const parsedResponse = await parse(createPartyRegistrationMinXml); expect(parsedResponse).to.eql(createPartyRegistrationMin); }); it('successfully parses max xml', async function() { const parsedResponse = await parse(createPartyRegistrationMaxXml); expect(parsedResponse).to.eql(createPartyRegistrationMax); }); it('successfully parses serialized value', async function() { const serialized = serialize(createPartyRegistrationMax); const parsedResponse = await parse(serialized); expect(parsedResponse).to.eql(createPartyRegistrationMax); }); it('throws Error on missing required field', async function() { let lastError; try { await parse(createPartyRegistrationMissingRequiredXml); } catch (e) { lastError = e; } expect(lastError).to.be.an('error'); }); it('throws Error on illegal boolean value', async function() { let lastError; try { await parse(createPartyRegistrationIllegalBooleanXml); } catch (e) { lastError = e; } expect(lastError).to.be.an('error'); }); }); describe('serialize', function() { it('successfully serializes valid object', async function() { const serializedResponse = await serialize(createPartyRegistrationMax); expect(serializedResponse).to.eql( '43233f59d85fbdf3997dbeb1aabbccdd2.0bsimpleHttphttp://1.2.3.4falsefalseOadrVen2bfalse', ); }); }); });