diff --git a/src/Hyperwallet.js b/src/Hyperwallet.js index 8add7bf..16c2d5e 100644 --- a/src/Hyperwallet.js +++ b/src/Hyperwallet.js @@ -1033,8 +1033,8 @@ export default class Hyperwallet { if (!data.transferMethodCurrency) { throw new Error("transferMethodCurrency is required"); } - if (!data.email) { - throw new Error("email is required"); + if (!data.email && !data.accountId) { + throw new Error("email/accountId is required"); } this.client.doPost(`users/${encodeURIComponent(userToken)}/paypal-accounts`, data, {}, callback); } diff --git a/test/Hyperwallet.spec.js b/test/Hyperwallet.spec.js index c46d92b..0770ecc 100644 --- a/test/Hyperwallet.spec.js +++ b/test/Hyperwallet.spec.js @@ -1996,7 +1996,7 @@ describe("Hyperwallet", () => { expect(() => client.createPayPalAccount("test-user-token", { transferMethodCountry: "test-transferMethodCountry", transferMethodCurrency: "test-transferMethodCurrency", - }, callback)).to.throw("email is required"); + }, callback)).to.throw("email/accountId is required"); }); /** @test {Hyperwallet#createPayPalAccount} */ @@ -2015,6 +2015,22 @@ describe("Hyperwallet", () => { email: "email", }, {}, callback); }); + /** @test {Hyperwallet#createPayPalAccount} */ + it("should do post call to PayPal account endpoint with accountId", () => { + const callback = () => null; + client.createPayPalAccount("test-user-token", { + transferMethodCountry: "test-transferMethodCountry", + transferMethodCurrency: "test-transferMethodCurrency", + accountId: "accountId", + }, callback); + + apiClientSpy.should.have.been.calledOnce(); + apiClientSpy.should.have.been.calledWith("users/test-user-token/paypal-accounts", { + transferMethodCountry: "test-transferMethodCountry", + transferMethodCurrency: "test-transferMethodCurrency", + accountId: "accountId", + }, {}, callback); + }); }); /** @test {Hyperwallet#getPayPalAccount} */