Home / File/ completions.test.ts — astro Source File

completions.test.ts — astro Source File

Architecture documentation for completions.test.ts, a typescript file in the astro codebase. 5 imports, 0 dependents.

Entity Profile

Dependency Diagram

graph LR
  bfeaa1d4_2b1c_7a2f_d4cf_493c45ab804c["completions.test.ts"]
  923db4e1_01a0_98ab_9c38_dfe16dd4bada["server.ts"]
  bfeaa1d4_2b1c_7a2f_d4cf_493c45ab804c --> 923db4e1_01a0_98ab_9c38_dfe16dd4bada
  9cf7acc9_e2e5_26e3_64f0_7304d1983c86["getLanguageServer"]
  bfeaa1d4_2b1c_7a2f_d4cf_493c45ab804c --> 9cf7acc9_e2e5_26e3_64f0_7304d1983c86
  db323e8c_04ef_9777_0487_224de5819a30["node:assert"]
  bfeaa1d4_2b1c_7a2f_d4cf_493c45ab804c --> db323e8c_04ef_9777_0487_224de5819a30
  6b0635f9_51ea_77aa_767b_7857878e98a6["node:test"]
  bfeaa1d4_2b1c_7a2f_d4cf_493c45ab804c --> 6b0635f9_51ea_77aa_767b_7857878e98a6
  6857b6b2_4d48_bfb0_0a0e_8e2e52fabb56["language-server"]
  bfeaa1d4_2b1c_7a2f_d4cf_493c45ab804c --> 6857b6b2_4d48_bfb0_0a0e_8e2e52fabb56
  style bfeaa1d4_2b1c_7a2f_d4cf_493c45ab804c fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import assert from 'node:assert';
import { before, describe, it } from 'node:test';
import { Position } from '@volar/language-server';
import type { LanguageServer } from '../server.ts';
import { getLanguageServer } from '../server.ts';

describe('CSS - Completions', () => {
	let languageServer: LanguageServer;

	before(async () => (languageServer = await getLanguageServer()));

	it('Can provide completions for CSS properties', async () => {
		const document = await languageServer.openFakeDocument(`<style>.foo { colo }</style>`, 'astro');
		const completions = await languageServer.handle.sendCompletionRequest(
			document.uri,
			Position.create(0, 18),
		);

		assert.ok(completions!.items && completions!.items.length > 0);
	});

	it('Can provide completions for CSS values', async () => {
		const document = await languageServer.openFakeDocument(
			`<style>.foo { color: re }</style>`,
			'astro',
		);
		const completions = await languageServer.handle.sendCompletionRequest(
			document.uri,
			Position.create(0, 21),
		);

		assert.ok(completions!.items && completions!.items.length > 0);
	});

	it('Can provide completions inside inline styles', async () => {
		const document = await languageServer.openFakeDocument(`<div style="color: ;"></div>`, 'astro');
		const completions = await languageServer.handle.sendCompletionRequest(
			document.uri,
			Position.create(0, 18),
		);

		assert.ok(completions!.items && completions!.items.length > 0);
		assert.ok(completions?.items.map((i) => i.label).includes('aliceblue'));
	});

	it('Can provide completions inside inline styles with multi-bytes characters in the file', async () => {
		const document = await languageServer.openFakeDocument(
			`<div>あ</div><div style="color: ;"></div>`,
			'astro',
		);
		const completions = await languageServer.handle.sendCompletionRequest(
			document.uri,
			Position.create(0, 30),
		);

		assert.ok(completions!.items && completions!.items.length > 0);
		assert.ok(completions?.items.map((i) => i.label).includes('aliceblue'));
	});

	it('Can provide completions inside SCSS blocks', async () => {
		const document = await languageServer.openFakeDocument(
			`<style lang="scss">
  $c: red;
	.foo {
		color: $
	}
</style>
`,
			'astro',
		);
		const completions = await languageServer.handle.sendCompletionRequest(
			document.uri,
			Position.create(3, 10),
		);

		const allLabels = completions?.items.map((i) => i.label);
		assert.ok(allLabels);

		assert.ok(completions!.items && completions!.items.length > 0);
		assert.ok(allLabels.includes('$c'));
	});

	it('Can provide completions inside LESS blocks', async () => {
		const document = await languageServer.openFakeDocument(
			`<style lang="less">
	@link-color: #428bca;
	h1 {
		color: @
	}
</style>
`,
			'astro',
		);
		const completions = await languageServer.handle.sendCompletionRequest(
			document.uri,
			Position.create(3, 10),
		);

		const allLabels = completions?.items.map((i) => i.label);
		assert.ok(allLabels);

		assert.ok(completions!.items && completions!.items.length > 0);
		assert.ok(allLabels.includes('@link-color'));
	});
});

Domain

Dependencies

Frequently Asked Questions

What does completions.test.ts do?
completions.test.ts is a source file in the astro codebase, written in typescript. It belongs to the CoreAstro domain.
What does completions.test.ts depend on?
completions.test.ts imports 5 module(s): getLanguageServer, language-server, node:assert, node:test, server.ts.
Where is completions.test.ts in the architecture?
completions.test.ts is located at packages/language-tools/language-server/test/css/completions.test.ts (domain: CoreAstro, directory: packages/language-tools/language-server/test/css).

Analyze Your Own Codebase

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

Try Supermodel Free