From baf27e35a36356fe52b9f702732d27b10aeb80c6 Mon Sep 17 00:00:00 2001 From: Christopher Rogers Date: Fri, 26 Jan 2024 15:37:06 -0800 Subject: [PATCH] Adds hostname auth capability to Frame --- lib/recurly/frame.js | 4 ++++ test/unit/frame.test.js | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/lib/recurly/frame.js b/lib/recurly/frame.js index 18c7588bd..2673c7f46 100644 --- a/lib/recurly/frame.js +++ b/lib/recurly/frame.js @@ -155,6 +155,10 @@ export class Frame extends Emitter { payload.event = name; payload.key = recurly.config.publicKey; + if (recurly.config.hostname) { + payload.credentialCheckoutHostname = recurly.config.hostname; + } + const ev = res => { this.removeRelay(); if (res.error) { diff --git a/test/unit/frame.test.js b/test/unit/frame.test.js index 22aec75f7..8e47d9e7d 100644 --- a/test/unit/frame.test.js +++ b/test/unit/frame.test.js @@ -183,6 +183,20 @@ describe('Recurly.Frame', function () { assert(~src.indexOf(`version=${recurly.version}`)); assert(~src.indexOf('event=recurly-frame-')); assert(~src.indexOf('key=test')); + assert(!~src.indexOf('credentialCheckoutHostname')); + }); + + describe('when configured to use hostname auth', function () { + beforeEach(function (done) { + this.recurly.configure({ hostname: 'test-hostname.recurly.com' }); + this.frame = this.recurly.Frame({ path, payload, type: Frame.TYPES.IFRAME, container: testBed() }); + this.frame.on('done', () => done()); + }); + + it('assigns the value in the URL', function () { + const { src } = this.frame.iframe; + assert(~src.indexOf('credentialCheckoutHostname=test-hostname.recurly.com')); + }); }); describe('Frame.destroy', function () {