Rocky_Mountain_Vending/.pnpm-store/v10/files/78/acc4595b3d9d5250c45aceab2965ce96b0a3183415ea9975c2784e9c7b0b3c8a23775b293b058f696e2ed7cc67318351cdb0cb61776b58a0f7a4745e8066a2
DMleadgen 46d973904b
Initial commit: Rocky Mountain Vending website
Next.js website for Rocky Mountain Vending company featuring:
- Product catalog with Stripe integration
- Service areas and parts pages
- Admin dashboard with Clerk authentication
- SEO optimized pages with JSON-LD structured data

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 16:22:15 -07:00

144 lines
4.7 KiB
Text

/* 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: true});
}).toThrow('cannot change load parameters');
});
test('does not throw an error if calling setLoadParameters after loadStripe but the parameters are the same', () => {
const {loadStripe} = require('./pure');
loadStripe.setLoadParameters({advancedFraudSignals: false});
loadStripe('pk_foo');
expect(() => {
loadStripe.setLoadParameters({advancedFraudSignals: false});
}).not.toThrow('cannot change load parameters');
});
});