'use strict'; const { expect } = require('chai'); const { parse, serialize } = require('../../../xml/create-party-registration'); const { createPartyRegistration1Xml, malformedXml, missingOadrXmlSignatureXml, illegalBooleanValueXml } = require('./xml-requests'); const { createPartyRegistration1 } = require('./js-requests'); describe('Create Party Registration', function() { describe('parse', function() { let parsedResponse; before(async () => { parsedResponse = await parse(createPartyRegistration1Xml); }); it ('successfully parses valid message', function() { expect(parsedResponse.venId).to.eql('3f59d85fbdf3997dbeb1'); expect(parsedResponse.oadrProfileName).to.eql('2.0b'); expect(parsedResponse.oadrTransportName).to.eql('simpleHttp'); expect(parsedResponse.oadrReportOnly).to.eql(false); expect(parsedResponse.oadrXmlSignature).to.eql(false); expect(parsedResponse.oadrVenName).to.eql('OadrVen2b'); expect(parsedResponse.oadrHttpPullModel).to.eql(true); }); it ('successfully parses serialized value', async function() { const serialized = serialize(createPartyRegistration1); const parsedResponse = await parse(serialized); expect(parsedResponse).to.eql(createPartyRegistration1); }); it ('throws Error on malformed input', async function() { let lastError; try { await parse(malformedXml); } catch (e) { lastError = e; } expect(lastError).to.be.an('error'); }); it ('throws Error on missing required field', async function() { let lastError; try { await parse(missingOadrXmlSignatureXml); } catch (e) { lastError = e; } expect(lastError).to.be.an('error'); }); it ('throws Error on illegal boolean value', async function() { let lastError; try { await parse(illegalBooleanValueXml); } catch (e) { lastError = e; } expect(lastError).to.be.an('error'); }); }); });