UNPKG

@networkpro/web

Version:

Locking Down Networks, Unlocking Confidence™ | Security, Networking, Privacy — Network Pro Strategies

50 lines (39 loc) 1.51 kB
/* ========================================================================== tests/unit/utm.test.js Copyright © 2025 Network Pro Strategies (Network Pro™) SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later This file is part of Network Pro. ========================================================================== */ import { appendUTM } from '$lib/utils/utm.js'; import { afterEach, describe, expect, it } from 'vitest'; describe('appendUTM', () => { const originalWindow = globalThis.window; afterEach(() => { globalThis.window = originalWindow; }); it('should return null when not in a browser environment', () => { // @ts-expect-error – simulating SSR delete globalThis.window; const url = 'https://example.com'; const result = appendUTM(url); expect(result).toBe(null); }); it('should return URL with utm_source appended', () => { globalThis.window = { // @ts-expect-error – mock minimal window for test location: { search: '?utm_source=linkedin' }, }; const url = 'https://example.com'; const result = appendUTM(url); expect(result).toBe('https://example.com?utm_source=linkedin'); }); it('should return original URL if no utm_source is present', () => { globalThis.window = { // @ts-expect-error – mock minimal window for test location: { search: '' }, }; const url = 'https://example.com'; const result = appendUTM(url); expect(result).toBe('https://example.com'); }); });