diff --git a/src/index.test.ts b/src/index.test.ts index aa1f0bb..74ae0c7 100644 --- a/src/index.test.ts +++ b/src/index.test.ts @@ -41,4 +41,21 @@ describe('loadTossPayments', () => { expect(scripts).toHaveLength(1); }); + + test(`src를 지정하면 주어진 URL로 script를 로드한다`, async () => { + const testSource = `https://test.tosspayments.com/sdk`; + const { loadTossPayments } = await import('./index'); + + const loadPromise = loadTossPayments('test_key', { + src: `https://test.tosspayments.com/sdk`, + }); + + dispatchLoadEvent(); + + await loadPromise; + + const script = document.querySelector(`script[src="${testSource}"]`); + + expect(script).not.toBeNull(); + }); }); diff --git a/src/index.ts b/src/index.ts index ef39652..fd1ee94 100644 --- a/src/index.ts +++ b/src/index.ts @@ -4,7 +4,10 @@ const SCRIPT_URL = 'https://js.tosspayments.com/v1'; let cachedPromise: Promise | undefined; -export function loadTossPayments(clientKey: string): Promise { +export function loadTossPayments( + clientKey: string, + { src = SCRIPT_URL }: { src?: string } = {} +): Promise { // SSR 지원 if (typeof window === 'undefined') { return Promise.resolve({ @@ -17,7 +20,7 @@ export function loadTossPayments(clientKey: string): Promise { document.head.appendChild(script);