UNPKG

@wojtekmaj/react-recaptcha-v3

Version:

Integrate Google reCAPTCHA v3 with your React app

59 lines (49 loc) 1.76 kB
import { afterEach, describe, expect, it } from 'vitest'; import { loadScript } from './utils.js'; describe('loadScript', () => { afterEach(() => { document.head.innerHTML = ''; document.body.innerHTML = ''; }); it('should append script to head when appendTo is head', () => { loadScript({ async: true, appendTo: 'head', defer: true, id: 'test-script', nonce: 'test-nonce', src: 'https://example.com/script.js', }); const script = document.head.querySelector('script'); expect(script).not.toBeNull(); expect(script?.async).toBe(true); expect(script?.defer).toBe(true); expect(script?.id).toBe('test-script'); expect(script).toHaveAttribute('nonce', 'test-nonce'); expect(script?.src).toBe('https://example.com/script.js'); }); it('should append script to body when appendTo is body', () => { loadScript({ async: true, appendTo: 'body', defer: true, id: 'test-script', nonce: 'test-nonce', src: 'https://example.com/script.js', }); const script = document.body.querySelector('script'); expect(script).not.toBeNull(); expect(script?.async).toBe(true); expect(script?.defer).toBe(true); expect(script?.id).toBe('test-script'); expect(script).toHaveAttribute('nonce', 'test-nonce'); expect(script?.src).toBe('https://example.com/script.js'); }); it('should not set async and defer if they are undefined', () => { loadScript({ appendTo: 'head', id: 'test-script', src: 'https://example.com/script.js' }); const script = document.head.querySelector('script'); expect(script).not.toBeNull(); expect(script?.async).toBe(false); expect(script?.defer).toBe(false); }); });