/test/resources/Account.spec.js

https://github.com/stripe/stripe-node · JavaScript · 517 lines · 481 code · 36 blank · 0 comment · 0 complexity · f3df8f94dc16428e41034ef9674af605 MD5 · raw file

  1. 'use strict';
  2. const stripe = require('../../testUtils').getSpyableStripe();
  3. const expect = require('chai').expect;
  4. const TEST_AUTH_KEY = 'aGN0bIwXnHdw5645VABjPdSn8nWY7G11';
  5. describe('Account Resource', () => {
  6. function uniqueEmail() {
  7. return `${Math.random()}bob@example.com`;
  8. }
  9. describe('create', () => {
  10. it('Sends the correct request', () => {
  11. const data = {
  12. managed: false,
  13. country: 'US',
  14. email: uniqueEmail(),
  15. };
  16. stripe.account.create(data);
  17. expect(stripe.LAST_REQUEST).to.deep.equal({
  18. method: 'POST',
  19. url: '/v1/accounts',
  20. data,
  21. headers: {},
  22. settings: {},
  23. });
  24. });
  25. });
  26. describe('delete', () => {
  27. it('deletes an account successfully', () => {
  28. stripe.account.del('acct_16Tzq6DBahdM4C8s');
  29. expect(stripe.LAST_REQUEST).to.deep.equal({
  30. method: 'DELETE',
  31. url: '/v1/accounts/acct_16Tzq6DBahdM4C8s',
  32. data: {},
  33. headers: {},
  34. settings: {},
  35. });
  36. });
  37. });
  38. describe('reject', () => {
  39. it('rejects an account successfully', () => {
  40. stripe.account.reject('acct_16Tzq6DBahdM4C8s', {reason: 'fraud'});
  41. expect(stripe.LAST_REQUEST).to.deep.equal({
  42. method: 'POST',
  43. url: '/v1/accounts/acct_16Tzq6DBahdM4C8s/reject',
  44. data: {reason: 'fraud'},
  45. headers: {},
  46. settings: {},
  47. });
  48. });
  49. });
  50. describe('retrieve', () => {
  51. it('Sends the correct request with no params', () => {
  52. stripe.account.retrieve();
  53. expect(stripe.LAST_REQUEST).to.deep.equal({
  54. method: 'GET',
  55. url: '/v1/account',
  56. data: {},
  57. headers: {},
  58. settings: {},
  59. });
  60. });
  61. it('Sends the correct request with ID param', () => {
  62. stripe.account.retrieve('foo');
  63. expect(stripe.LAST_REQUEST).to.deep.equal({
  64. method: 'GET',
  65. url: '/v1/accounts/foo',
  66. data: {},
  67. headers: {},
  68. settings: {},
  69. });
  70. });
  71. it('Sends the correct request with secret key', () => {
  72. const key = 'sk_12345678901234567890123456789012';
  73. stripe.account.retrieve(null, key);
  74. expect(stripe.LAST_REQUEST).to.deep.equal({
  75. auth: key,
  76. method: 'GET',
  77. url: '/v1/account',
  78. data: {},
  79. headers: {},
  80. settings: {},
  81. });
  82. });
  83. it('Sends the correct request with secret key as first object', () => {
  84. const params = {apiKey: 'sk_12345678901234567890123456789012'};
  85. stripe.account.retrieve(params);
  86. expect(stripe.LAST_REQUEST).to.deep.equal({
  87. auth: params.apiKey,
  88. method: 'GET',
  89. url: '/v1/account',
  90. data: {},
  91. headers: {},
  92. settings: {},
  93. });
  94. });
  95. it('Sends the correct request with a callback', () => {
  96. stripe.account.retrieve((err, account) => {});
  97. expect(stripe.LAST_REQUEST).to.deep.equal({
  98. method: 'GET',
  99. url: '/v1/account',
  100. data: {},
  101. headers: {},
  102. settings: {},
  103. });
  104. });
  105. });
  106. describe('Capability methods', () => {
  107. describe('listCapabilities', () => {
  108. it('Sends the correct request', () => {
  109. stripe.account.listCapabilities('acct_123');
  110. expect(stripe.LAST_REQUEST).to.deep.equal({
  111. method: 'GET',
  112. url: '/v1/accounts/acct_123/capabilities',
  113. headers: {},
  114. data: {},
  115. settings: {},
  116. });
  117. });
  118. it('Sends the correct request [with specified auth]', () => {
  119. stripe.account.listCapabilities('acct_123', TEST_AUTH_KEY);
  120. expect(stripe.LAST_REQUEST).to.deep.equal({
  121. method: 'GET',
  122. url: '/v1/accounts/acct_123/capabilities',
  123. headers: {},
  124. data: {},
  125. auth: TEST_AUTH_KEY,
  126. settings: {},
  127. });
  128. });
  129. });
  130. describe('retrieveCapability', () => {
  131. it('Sends the correct request', () => {
  132. stripe.account.retrieveCapability('acct_123', 'acap_123');
  133. expect(stripe.LAST_REQUEST).to.deep.equal({
  134. method: 'GET',
  135. url: '/v1/accounts/acct_123/capabilities/acap_123',
  136. headers: {},
  137. data: {},
  138. settings: {},
  139. });
  140. });
  141. it('Sends the correct request [with specified auth]', () => {
  142. stripe.account.retrieveCapability(
  143. 'acct_123',
  144. 'acap_123',
  145. TEST_AUTH_KEY
  146. );
  147. expect(stripe.LAST_REQUEST).to.deep.equal({
  148. method: 'GET',
  149. url: '/v1/accounts/acct_123/capabilities/acap_123',
  150. headers: {},
  151. data: {},
  152. auth: TEST_AUTH_KEY,
  153. settings: {},
  154. });
  155. });
  156. });
  157. describe('updateCapability', () => {
  158. it('Sends the correct request', () => {
  159. stripe.account.updateCapability('acct_123', 'acap_123', {
  160. first_name: 'John',
  161. });
  162. expect(stripe.LAST_REQUEST).to.deep.equal({
  163. method: 'POST',
  164. url: '/v1/accounts/acct_123/capabilities/acap_123',
  165. headers: {},
  166. data: {first_name: 'John'},
  167. settings: {},
  168. });
  169. });
  170. it('Sends the correct request [with specified auth]', () => {
  171. stripe.account.updateCapability(
  172. 'acct_123',
  173. 'acap_123',
  174. {
  175. first_name: 'John',
  176. },
  177. TEST_AUTH_KEY
  178. );
  179. expect(stripe.LAST_REQUEST).to.deep.equal({
  180. method: 'POST',
  181. url: '/v1/accounts/acct_123/capabilities/acap_123',
  182. headers: {},
  183. data: {first_name: 'John'},
  184. auth: TEST_AUTH_KEY,
  185. settings: {},
  186. });
  187. });
  188. });
  189. });
  190. describe('External account methods', () => {
  191. describe('retrieveExternalAccount', () => {
  192. it('Sends the correct request', () => {
  193. stripe.account.retrieveExternalAccount(
  194. 'accountIdFoo321',
  195. 'externalAccountIdFoo456'
  196. );
  197. expect(stripe.LAST_REQUEST).to.deep.equal({
  198. method: 'GET',
  199. url:
  200. '/v1/accounts/accountIdFoo321/external_accounts/externalAccountIdFoo456',
  201. headers: {},
  202. data: {},
  203. settings: {},
  204. });
  205. });
  206. it('Sends the correct request [with specified auth]', () => {
  207. stripe.account.retrieveExternalAccount(
  208. 'accountIdFoo321',
  209. 'externalAccountIdFoo456',
  210. TEST_AUTH_KEY
  211. );
  212. expect(stripe.LAST_REQUEST).to.deep.equal({
  213. method: 'GET',
  214. url:
  215. '/v1/accounts/accountIdFoo321/external_accounts/externalAccountIdFoo456',
  216. headers: {},
  217. data: {},
  218. auth: TEST_AUTH_KEY,
  219. settings: {},
  220. });
  221. });
  222. });
  223. describe('createExternalAccount', () => {
  224. it('Sends the correct request', () => {
  225. stripe.account.createExternalAccount('accountIdFoo321', {
  226. number: '123456',
  227. currency: 'usd',
  228. country: 'US',
  229. });
  230. expect(stripe.LAST_REQUEST).to.deep.equal({
  231. method: 'POST',
  232. url: '/v1/accounts/accountIdFoo321/external_accounts',
  233. headers: {},
  234. data: {number: '123456', currency: 'usd', country: 'US'},
  235. settings: {},
  236. });
  237. });
  238. it('Sends the correct request [with specified auth]', () => {
  239. stripe.account.createExternalAccount(
  240. 'accountIdFoo321',
  241. {
  242. number: '123456',
  243. currency: 'usd',
  244. country: 'US',
  245. },
  246. TEST_AUTH_KEY
  247. );
  248. expect(stripe.LAST_REQUEST).to.deep.equal({
  249. method: 'POST',
  250. url: '/v1/accounts/accountIdFoo321/external_accounts',
  251. headers: {},
  252. data: {number: '123456', currency: 'usd', country: 'US'},
  253. auth: TEST_AUTH_KEY,
  254. settings: {},
  255. });
  256. });
  257. });
  258. describe('updateExternalAccount', () => {
  259. it('Sends the correct request', () => {
  260. stripe.account.updateExternalAccount(
  261. 'accountIdFoo321',
  262. 'externalAccountIdFoo456',
  263. {
  264. default_for_currency: true,
  265. }
  266. );
  267. expect(stripe.LAST_REQUEST).to.deep.equal({
  268. method: 'POST',
  269. url:
  270. '/v1/accounts/accountIdFoo321/external_accounts/externalAccountIdFoo456',
  271. headers: {},
  272. data: {default_for_currency: true},
  273. settings: {},
  274. });
  275. });
  276. });
  277. describe('deleteExternalAccount', () => {
  278. it('Sends the correct request', () => {
  279. stripe.account.deleteExternalAccount(
  280. 'accountIdFoo321',
  281. 'externalAccountIdFoo456'
  282. );
  283. expect(stripe.LAST_REQUEST).to.deep.equal({
  284. method: 'DELETE',
  285. url:
  286. '/v1/accounts/accountIdFoo321/external_accounts/externalAccountIdFoo456',
  287. headers: {},
  288. data: {},
  289. settings: {},
  290. });
  291. });
  292. it('Sends the correct request [with specified auth]', () => {
  293. stripe.account.deleteExternalAccount(
  294. 'accountIdFoo321',
  295. 'externalAccountIdFoo456',
  296. TEST_AUTH_KEY
  297. );
  298. expect(stripe.LAST_REQUEST).to.deep.equal({
  299. method: 'DELETE',
  300. url:
  301. '/v1/accounts/accountIdFoo321/external_accounts/externalAccountIdFoo456',
  302. headers: {},
  303. data: {},
  304. auth: TEST_AUTH_KEY,
  305. settings: {},
  306. });
  307. });
  308. });
  309. describe('listExternalAccounts', () => {
  310. it('Sends the correct request', () => {
  311. stripe.account.listExternalAccounts('accountIdFoo321');
  312. expect(stripe.LAST_REQUEST).to.deep.equal({
  313. method: 'GET',
  314. url: '/v1/accounts/accountIdFoo321/external_accounts',
  315. headers: {},
  316. data: {},
  317. settings: {},
  318. });
  319. });
  320. it('Sends the correct request [with specified auth]', () => {
  321. stripe.account.listExternalAccounts('accountIdFoo321', TEST_AUTH_KEY);
  322. expect(stripe.LAST_REQUEST).to.deep.equal({
  323. method: 'GET',
  324. url: '/v1/accounts/accountIdFoo321/external_accounts',
  325. headers: {},
  326. data: {},
  327. auth: TEST_AUTH_KEY,
  328. settings: {},
  329. });
  330. });
  331. });
  332. });
  333. describe('LoginLink methods', () => {
  334. describe('createLoginLink', () => {
  335. it('Sends the correct request', () => {
  336. stripe.account.createLoginLink('acct_EXPRESS');
  337. expect(stripe.LAST_REQUEST).to.deep.equal({
  338. method: 'POST',
  339. url: '/v1/accounts/acct_EXPRESS/login_links',
  340. headers: {},
  341. data: {},
  342. settings: {},
  343. });
  344. });
  345. });
  346. });
  347. describe('Person methods', () => {
  348. describe('retrievePerson', () => {
  349. it('Sends the correct request', () => {
  350. stripe.account.retrievePerson('acct_123', 'person_123');
  351. expect(stripe.LAST_REQUEST).to.deep.equal({
  352. method: 'GET',
  353. url: '/v1/accounts/acct_123/persons/person_123',
  354. headers: {},
  355. data: {},
  356. settings: {},
  357. });
  358. });
  359. it('Sends the correct request [with specified auth]', () => {
  360. stripe.account.retrievePerson('acct_123', 'person_123', TEST_AUTH_KEY);
  361. expect(stripe.LAST_REQUEST).to.deep.equal({
  362. method: 'GET',
  363. url: '/v1/accounts/acct_123/persons/person_123',
  364. headers: {},
  365. data: {},
  366. auth: TEST_AUTH_KEY,
  367. settings: {},
  368. });
  369. });
  370. });
  371. describe('createPerson', () => {
  372. it('Sends the correct request', () => {
  373. stripe.account.createPerson('acct_123', {
  374. first_name: 'John',
  375. });
  376. expect(stripe.LAST_REQUEST).to.deep.equal({
  377. method: 'POST',
  378. url: '/v1/accounts/acct_123/persons',
  379. headers: {},
  380. data: {first_name: 'John'},
  381. settings: {},
  382. });
  383. });
  384. it('Sends the correct request [with specified auth]', () => {
  385. stripe.account.createPerson(
  386. 'acct_123',
  387. {
  388. first_name: 'John',
  389. },
  390. TEST_AUTH_KEY
  391. );
  392. expect(stripe.LAST_REQUEST).to.deep.equal({
  393. method: 'POST',
  394. url: '/v1/accounts/acct_123/persons',
  395. headers: {},
  396. data: {first_name: 'John'},
  397. auth: TEST_AUTH_KEY,
  398. settings: {},
  399. });
  400. });
  401. });
  402. describe('updatePerson', () => {
  403. it('Sends the correct request', () => {
  404. stripe.account.updatePerson('acct_123', 'person_123', {
  405. first_name: 'John',
  406. });
  407. expect(stripe.LAST_REQUEST).to.deep.equal({
  408. method: 'POST',
  409. url: '/v1/accounts/acct_123/persons/person_123',
  410. headers: {},
  411. data: {first_name: 'John'},
  412. settings: {},
  413. });
  414. });
  415. it('Sends the correct request [with specified auth]', () => {
  416. stripe.account.updatePerson(
  417. 'acct_123',
  418. 'person_123',
  419. {
  420. first_name: 'John',
  421. },
  422. TEST_AUTH_KEY
  423. );
  424. expect(stripe.LAST_REQUEST).to.deep.equal({
  425. method: 'POST',
  426. url: '/v1/accounts/acct_123/persons/person_123',
  427. headers: {},
  428. data: {first_name: 'John'},
  429. auth: TEST_AUTH_KEY,
  430. settings: {},
  431. });
  432. });
  433. });
  434. describe('deletePerson', () => {
  435. it('Sends the correct request', () => {
  436. stripe.account.deletePerson('acct_123', 'person_123');
  437. expect(stripe.LAST_REQUEST).to.deep.equal({
  438. method: 'DELETE',
  439. url: '/v1/accounts/acct_123/persons/person_123',
  440. headers: {},
  441. data: {},
  442. settings: {},
  443. });
  444. });
  445. it('Sends the correct request [with specified auth]', () => {
  446. stripe.account.deletePerson('acct_123', 'person_123', TEST_AUTH_KEY);
  447. expect(stripe.LAST_REQUEST).to.deep.equal({
  448. method: 'DELETE',
  449. url: '/v1/accounts/acct_123/persons/person_123',
  450. headers: {},
  451. data: {},
  452. auth: TEST_AUTH_KEY,
  453. settings: {},
  454. });
  455. });
  456. });
  457. describe('listPersons', () => {
  458. it('Sends the correct request', () => {
  459. stripe.account.listPersons('acct_123');
  460. expect(stripe.LAST_REQUEST).to.deep.equal({
  461. method: 'GET',
  462. url: '/v1/accounts/acct_123/persons',
  463. headers: {},
  464. data: {},
  465. settings: {},
  466. });
  467. });
  468. it('Sends the correct request [with specified auth]', () => {
  469. stripe.account.listPersons('acct_123', TEST_AUTH_KEY);
  470. expect(stripe.LAST_REQUEST).to.deep.equal({
  471. method: 'GET',
  472. url: '/v1/accounts/acct_123/persons',
  473. headers: {},
  474. data: {},
  475. auth: TEST_AUTH_KEY,
  476. settings: {},
  477. });
  478. });
  479. });
  480. });
  481. });