Home / File/ css-parse.test.ts — svelte Source File

css-parse.test.ts — svelte Source File

Architecture documentation for css-parse.test.ts, a typescript file in the svelte codebase. 2 imports, 0 dependents.

File typescript 2 imports

Entity Profile

Dependency Diagram

graph LR
  5ffb4f62_c47a_6647_fa38_78c328f2f6d7["css-parse.test.ts"]
  b63ddb92_634c_990b_eb1b_0bad8a4d434e["vitest"]
  5ffb4f62_c47a_6647_fa38_78c328f2f6d7 --> b63ddb92_634c_990b_eb1b_0bad8a4d434e
  a8d49317_f479_a216_78e7_48c9e32499d5["compiler"]
  5ffb4f62_c47a_6647_fa38_78c328f2f6d7 --> a8d49317_f479_a216_78e7_48c9e32499d5
  style 5ffb4f62_c47a_6647_fa38_78c328f2f6d7 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { assert, describe, it } from 'vitest';
import { parseCss } from 'svelte/compiler';

describe('parseCss', () => {
	it('parses a simple rule', () => {
		const ast = parseCss('div { color: red; }');
		assert.equal(ast.type, 'StyleSheet');
		assert.equal(ast.children.length, 1);
		assert.equal(ast.children[0].type, 'Rule');
	});

	it('parses at-rules', () => {
		const ast = parseCss('@media (min-width: 800px) { div { color: red; } }');
		assert.equal(ast.children.length, 1);
		assert.equal(ast.children[0].type, 'Atrule');
		if (ast.children[0].type === 'Atrule') {
			assert.equal(ast.children[0].name, 'media');
		}
	});

	it('parses @import', () => {
		const ast = parseCss("@import 'foo.css';");
		assert.equal(ast.children.length, 1);
		assert.equal(ast.children[0].type, 'Atrule');
		if (ast.children[0].type === 'Atrule') {
			assert.equal(ast.children[0].name, 'import');
			assert.equal(ast.children[0].block, null);
		}
	});

	it('parses multiple rules', () => {
		const ast = parseCss('div { color: red; } span { color: blue; }');
		assert.equal(ast.children.length, 2);
	});

	it('has correct start/end positions', () => {
		const ast = parseCss('div { color: red; }');
		assert.equal(ast.start, 0);
		assert.equal(ast.end, 19);
	});

	it('strips BOM', () => {
		const ast = parseCss('\uFEFFdiv { color: red; }');
		assert.equal(ast.start, 0);
		assert.equal(ast.end, 19);
	});

	it('parses nested rules', () => {
		const ast = parseCss('div { color: red; span { color: blue; } }');
		assert.equal(ast.children.length, 1);
		const rule = ast.children[0];
		assert.equal(rule.type, 'Rule');
		if (rule.type === 'Rule') {
			assert.equal(rule.block.children.length, 2); // declaration + nested rule
		}
	});

	it('parses empty stylesheet', () => {
		const ast = parseCss('');
		assert.equal(ast.type, 'StyleSheet');
// ... (94 more lines)

Dependencies

  • compiler
  • vitest

Frequently Asked Questions

What does css-parse.test.ts do?
css-parse.test.ts is a source file in the svelte codebase, written in typescript.
What does css-parse.test.ts depend on?
css-parse.test.ts imports 2 module(s): compiler, vitest.
Where is css-parse.test.ts in the architecture?
css-parse.test.ts is located at packages/svelte/tests/css-parse.test.ts (directory: packages/svelte/tests).

Analyze Your Own Codebase

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

Try Supermodel Free