Home / File/ url.test.ts — svelte Source File

url.test.ts — svelte Source File

Architecture documentation for url.test.ts, a typescript file in the svelte codebase. 7 imports, 0 dependents.

Entity Profile

Dependency Diagram

graph LR
  4706453c_293a_0c92_672f_d49761b1dae7["url.test.ts"]
  1ae6fa4e_16ee_acdf_5e28_17eb0819fddb["effects.js"]
  4706453c_293a_0c92_672f_d49761b1dae7 --> 1ae6fa4e_16ee_acdf_5e28_17eb0819fddb
  7494b934_a3b8_689e_91b6_8435e26461c5["render_effect"]
  4706453c_293a_0c92_672f_d49761b1dae7 --> 7494b934_a3b8_689e_91b6_8435e26461c5
  cf74814c_38ff_1817_80eb_cbc1bb490472["effect_root"]
  4706453c_293a_0c92_672f_d49761b1dae7 --> cf74814c_38ff_1817_80eb_cbc1bb490472
  717fc8d5_bdb4_4b73_d6c5_c4a367a60cf2["index-client.js"]
  4706453c_293a_0c92_672f_d49761b1dae7 --> 717fc8d5_bdb4_4b73_d6c5_c4a367a60cf2
  19ab2c95_d135_7687_9e01_bd8cfc8a8f42["url.js"]
  4706453c_293a_0c92_672f_d49761b1dae7 --> 19ab2c95_d135_7687_9e01_bd8cfc8a8f42
  25654e33_e6d5_1b08_6baf_586a26ac3d8f["SvelteURL"]
  4706453c_293a_0c92_672f_d49761b1dae7 --> 25654e33_e6d5_1b08_6baf_586a26ac3d8f
  b63ddb92_634c_990b_eb1b_0bad8a4d434e["vitest"]
  4706453c_293a_0c92_672f_d49761b1dae7 --> b63ddb92_634c_990b_eb1b_0bad8a4d434e
  style 4706453c_293a_0c92_672f_d49761b1dae7 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { render_effect, effect_root } from '../internal/client/reactivity/effects.js';
import { flushSync } from '../index-client.js';
import { SvelteURL } from './url.js';
import { assert, test } from 'vitest';

test('url.hash', () => {
	const url = new SvelteURL('https://svelte.dev');
	const log: any = [];

	const cleanup = effect_root(() => {
		render_effect(() => {
			log.push(url.hash);
		});
	});

	flushSync(() => {
		url.hash = 'abc';
	});

	flushSync(() => {
		url.href = 'https://svelte.dev/a/b/c#def';
	});

	flushSync(() => {
		// does not affect hash
		url.pathname = 'e/f';
	});

	assert.deepEqual(log, ['', '#abc', '#def']);

	cleanup();
});

test('url.href', () => {
	const url = new SvelteURL('https://svelte.dev?foo=bar&t=123');
	const log: any = [];

	const cleanup = effect_root(() => {
		render_effect(() => {
			log.push(url.href);
		});
	});

	flushSync(() => {
		url.search = '?q=kit&foo=baz';
	});

	flushSync(() => {
		// changes from searchParams should be synced to URL instance as well
		url.searchParams.append('foo', 'qux');
	});

	flushSync(() => {
		url.searchParams.delete('foo');
	});

	flushSync(() => {
		url.searchParams.set('love', 'svelte5');
	});

// ... (61 more lines)

Frequently Asked Questions

What does url.test.ts do?
url.test.ts is a source file in the svelte codebase, written in typescript. It belongs to the SharedInternal domain.
What does url.test.ts depend on?
url.test.ts imports 7 module(s): SvelteURL, effect_root, effects.js, index-client.js, render_effect, url.js, vitest.
Where is url.test.ts in the architecture?
url.test.ts is located at packages/svelte/src/reactivity/url.test.ts (domain: SharedInternal, directory: packages/svelte/src/reactivity).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free