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

date.test.ts — svelte Source File

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

Entity Profile

Dependency Diagram

graph LR
  3654304d_e89d_c28d_2667_5d1a3440f6d3["date.test.ts"]
  1ae6fa4e_16ee_acdf_5e28_17eb0819fddb["effects.js"]
  3654304d_e89d_c28d_2667_5d1a3440f6d3 --> 1ae6fa4e_16ee_acdf_5e28_17eb0819fddb
  7494b934_a3b8_689e_91b6_8435e26461c5["render_effect"]
  3654304d_e89d_c28d_2667_5d1a3440f6d3 --> 7494b934_a3b8_689e_91b6_8435e26461c5
  cf74814c_38ff_1817_80eb_cbc1bb490472["effect_root"]
  3654304d_e89d_c28d_2667_5d1a3440f6d3 --> cf74814c_38ff_1817_80eb_cbc1bb490472
  717fc8d5_bdb4_4b73_d6c5_c4a367a60cf2["index-client.js"]
  3654304d_e89d_c28d_2667_5d1a3440f6d3 --> 717fc8d5_bdb4_4b73_d6c5_c4a367a60cf2
  7c09b4ab_171c_0277_b8c0_61940f33ff53["date.js"]
  3654304d_e89d_c28d_2667_5d1a3440f6d3 --> 7c09b4ab_171c_0277_b8c0_61940f33ff53
  ead2ff3c_1f9f_37b6_47f8_3d9514f78e14["SvelteDate"]
  3654304d_e89d_c28d_2667_5d1a3440f6d3 --> ead2ff3c_1f9f_37b6_47f8_3d9514f78e14
  b63ddb92_634c_990b_eb1b_0bad8a4d434e["vitest"]
  3654304d_e89d_c28d_2667_5d1a3440f6d3 --> b63ddb92_634c_990b_eb1b_0bad8a4d434e
  1a59b12b_63d5_2eb4_1881_6fb96dbdcb56["client"]
  3654304d_e89d_c28d_2667_5d1a3440f6d3 --> 1a59b12b_63d5_2eb4_1881_6fb96dbdcb56
  style 3654304d_e89d_c28d_2667_5d1a3440f6d3 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 { SvelteDate } from './date.js';
import { assert, test } from 'vitest';
import { derived, get } from 'svelte/internal/client';

const initial_date = new Date(2023, 0, 2, 0, 0, 0, 0);
const a = new Date(2024, 1, 3, 1, 1, 1, 1);
const b = new Date(2025, 2, 4, 2, 2, 2, 2);
const c = new Date(2026, 3, 5, 3, 3, 3, 3);

test('date.setDate and date.setUTCDate', () => {
	const date = new SvelteDate(initial_date);
	const log: any = [];

	const cleanup = effect_root(() => {
		render_effect(() => {
			log.push(date.getDate());
		});
		render_effect(() => {
			log.push(date.getUTCDate());
		});
	});

	flushSync(() => {
		date.setDate(a.getDate());
	});

	flushSync(() => {
		date.setDate(date.getDate() + 1);
	});

	flushSync(() => {
		date.setDate(date.getDate()); // no change expected
	});

	flushSync(() => {
		date.setUTCDate(date.getUTCDate() + 1);
	});

	// Date/UTCDate may vary on some timezones
	const date_plus_zero = new Date(initial_date);
	date_plus_zero.setDate(a.getDate());
	const date_plus_one = new Date(initial_date);
	date_plus_one.setDate(a.getDate() + 1);
	const date_plus_two = new Date(initial_date);
	date_plus_two.setDate(a.getDate() + 2);

	assert.deepEqual(log, [
		initial_date.getDate(),
		initial_date.getUTCDate(),
		date_plus_zero.getDate(),
		date_plus_zero.getUTCDate(),
		date_plus_one.getDate(),
		date_plus_one.getUTCDate(),
		date_plus_two.getDate(),
		date_plus_two.getUTCDate()
	]);

	cleanup();
// ... (615 more lines)

Frequently Asked Questions

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