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'
})
)
})
})