![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/vreg/node_modules/@stripe/stripe-js/src/ |
/* eslint-disable @typescript-eslint/no-var-requires */ const SCRIPT_SELECTOR = 'script[src^="https://js.stripe.com/v3"]'; describe('pure module', () => { beforeEach(() => { jest.spyOn(console, 'warn').mockReturnValue(); }); afterEach(() => { const scripts = Array.from(document.querySelectorAll(SCRIPT_SELECTOR)); for (const script of scripts) { if (script.parentElement) { script.parentElement.removeChild(script); } } delete window.Stripe; jest.resetModules(); jest.restoreAllMocks(); }); test('does not inject the script if loadStripe is not called', async () => { require('./pure'); expect(document.querySelector(SCRIPT_SELECTOR)).toBe(null); }); test('it injects the script if loadStripe is called', async () => { const {loadStripe} = require('./pure'); loadStripe('pk_test_foo'); expect(document.querySelector(SCRIPT_SELECTOR)).not.toBe(null); }); test('it can load the script with advanced fraud signals disabled', () => { const {loadStripe} = require('./pure'); loadStripe.setLoadParameters({advancedFraudSignals: false}); loadStripe('pk_test_foo'); expect( document.querySelector( 'script[src^="https://js.stripe.com/v3?advancedFraudSignals=false"]' ) ).not.toBe(null); }); test('it should throw when setting invalid load parameters', () => { const {loadStripe} = require('./pure'); expect(() => { loadStripe.setLoadParameters({howdy: true}); }).toThrow('invalid load parameters'); }); test('it should warn when calling loadStripe if a script already exists when parameters are set', () => { const script = document.createElement('script'); script.src = 'https://js.stripe.com/v3'; document.body.appendChild(script); const {loadStripe} = require('./pure'); loadStripe.setLoadParameters({advancedFraudSignals: true}); loadStripe('pk_test_123'); expect(console.warn).toHaveBeenCalledTimes(1); expect(console.warn).toHaveBeenLastCalledWith( 'loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used' ); }); test('it should warn when calling loadStripe if a script is added after parameters are set', () => { const {loadStripe} = require('./pure'); loadStripe.setLoadParameters({advancedFraudSignals: true}); const script = document.createElement('script'); script.src = 'https://js.stripe.com/v3'; document.body.appendChild(script); loadStripe('pk_test_123'); expect(console.warn).toHaveBeenCalledTimes(1); expect(console.warn).toHaveBeenLastCalledWith( 'loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used' ); }); test('it should warn when window.Stripe already exists if parameters are set', () => { window.Stripe = jest.fn((key) => ({key})) as any; const {loadStripe} = require('./pure'); loadStripe.setLoadParameters({advancedFraudSignals: true}); loadStripe('pk_test_123'); expect(console.warn).toHaveBeenCalledTimes(1); expect(console.warn).toHaveBeenLastCalledWith( 'loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used' ); }); test('it should not warn when a script already exists if parameters are not set', () => { const script = document.createElement('script'); script.src = 'https://js.stripe.com/v3'; document.body.appendChild(script); const {loadStripe} = require('./pure'); loadStripe('pk_test_123'); expect(console.warn).toHaveBeenCalledTimes(0); }); test('it should not warn when window.Stripe already exists if parameters are not set', () => { window.Stripe = jest.fn((key) => ({key})) as any; const {loadStripe} = require('./pure'); loadStripe('pk_test_123'); expect(console.warn).toHaveBeenCalledTimes(0); }); test('throws an error if calling setLoadParameters after loadStripe', () => { const {loadStripe} = require('./pure'); loadStripe.setLoadParameters({advancedFraudSignals: false}); loadStripe('pk_foo'); expect(() => { loadStripe.setLoadParameters({advancedFraudSignals: false}); }).toThrow('cannot change load parameters'); }); });