import * as JSDOM from 'jsdom' import { pageDefaults } from '../page-info' describe(pageDefaults, () => { test('captures url fragments and href', () => { const jsd = new JSDOM.JSDOM("batman's test", { url: 'https://test.koala.live#mylink#thisispartofthefragment##thistoo' }) global.window = jsd.window as unknown as Window & typeof globalThis global.document = jsd.window.document global.location = jsd.window.location const defaults = pageDefaults() expect(defaults).toEqual( expect.objectContaining({ url: 'https://test.koala.live/#mylink#thisispartofthefragment##thistoo', path: '/', title: "batman's test" }) ) }) test('works with querystrings and fragments', () => { const jsd = new JSDOM.JSDOM('', { url: 'https://test.koala.live/users?foo=bar&test=ok#mylink' }) global.window = jsd.window as unknown as Window & typeof globalThis global.document = jsd.window.document global.history = jsd.window.history global.location = jsd.window.location const defaults = pageDefaults() expect(defaults).toEqual( expect.objectContaining({ url: 'https://test.koala.live/users?foo=bar&test=ok#mylink', path: '/users' }) ) }) test('works with utm', () => { const jsd = new JSDOM.JSDOM('', { url: 'https://test.koala.live/users?foo=bar&test=ok&utm_source=newsletter&utm_medium=email#mylink' }) global.window = jsd.window as unknown as Window & typeof globalThis global.document = jsd.window.document global.history = jsd.window.history global.location = jsd.window.location const defaults = pageDefaults() expect(defaults).toEqual( expect.objectContaining({ url: 'https://test.koala.live/users?foo=bar&test=ok&utm_source=newsletter&utm_medium=email#mylink', path: '/users' }) ) }) })