Home / File/ static-build-vite-plugins.test.js — astro Source File

static-build-vite-plugins.test.js — astro Source File

Architecture documentation for static-build-vite-plugins.test.js, a javascript file in the astro codebase. 4 imports, 0 dependents.

Entity Profile

Dependency Diagram

graph LR
  c8f26ade_269a_cabb_79a4_ee74edfb0733["static-build-vite-plugins.test.js"]
  0a624eac_945e_c9e8_c9de_3feb9de2dd15["test-utils.js"]
  c8f26ade_269a_cabb_79a4_ee74edfb0733 --> 0a624eac_945e_c9e8_c9de_3feb9de2dd15
  dd4f09ce_3fd7_8295_f616_8876cda4555c["loadFixture"]
  c8f26ade_269a_cabb_79a4_ee74edfb0733 --> dd4f09ce_3fd7_8295_f616_8876cda4555c
  e1e2fac7_5a95_7a88_cb1e_0a3b91c4e607["strict"]
  c8f26ade_269a_cabb_79a4_ee74edfb0733 --> e1e2fac7_5a95_7a88_cb1e_0a3b91c4e607
  6b0635f9_51ea_77aa_767b_7857878e98a6["node:test"]
  c8f26ade_269a_cabb_79a4_ee74edfb0733 --> 6b0635f9_51ea_77aa_767b_7857878e98a6
  style c8f26ade_269a_cabb_79a4_ee74edfb0733 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import assert from 'node:assert/strict';
import { before, describe, it } from 'node:test';
import { loadFixture } from './test-utils.js';

describe('Static build: vite plugins included when required', () => {
	/** @type {Map<string, boolean>} */
	const pluginsCalled = new Map();
	/** @type {Map<string, boolean>} */
	const expectedPluginResult = new Map([
		['prepare-no-apply-plugin', true],
		['prepare-serve-plugin', false],
		['prepare-apply-fn-plugin', true],
		['prepare-dont-apply-fn-plugin', false],
		['prepare-build-plugin', true],
	]);
	before(async () => {
		/** @type {import('./test-utils').Fixture} */
		const fixture = await loadFixture({
			root: './fixtures/astro pages/',
			integrations: [
				{
					name: '@astrojs/prepare-vite-plugins',
					hooks: {
						'astro:config:setup': ({ updateConfig }) => {
							pluginsCalled.set('prepare-no-apply-plugin', false);
							pluginsCalled.set('prepare-serve-plugin', false);
							pluginsCalled.set('prepare-apply-fn-plugin', false);
							pluginsCalled.set('prepare-dont-apply-fn-plugin', false);
							pluginsCalled.set('prepare-build-plugin', false);
							updateConfig({
								vite: {
									plugins: [
										{
											name: 'prepare-no-apply-plugin',
											configResolved: () => {
												pluginsCalled.set('prepare-no-apply-plugin', true);
											},
										},
										{
											name: 'prepare-serve-plugin',
											apply: 'serve',
											configResolved: () => {
												pluginsCalled.set('prepare-serve-plugin', true);
											},
										},
										{
											name: 'prepare-apply-fn-plugin',
											apply: (_, { command }) => command === 'build',
											configResolved: () => {
												pluginsCalled.set('prepare-apply-fn-plugin', true);
											},
										},
										{
											name: 'prepare-dont-apply-fn-plugin',
											apply: (_, { command }) => command === 'serve',
											configResolved: () => {
												pluginsCalled.set('prepare-dont-apply-fn-plugin', true);
											},
										},
										{
											name: 'prepare-build-plugin',
											apply: 'build',
											configResolved: () => {
												pluginsCalled.set('prepare-build-plugin', true);
											},
										},
									],
								},
							});
						},
					},
				},
			],
		});
		await fixture.build();
	});
	it('Vite Plugins are included/excluded properly', async () => {
		assert.equal(pluginsCalled.size, expectedPluginResult.size, 'Not all plugins were initialized');
		Array.from(expectedPluginResult.entries()).forEach(([plugin, called]) =>
			assert.equal(
				pluginsCalled.get(plugin),
				called,
				`${plugin} was ${called ? 'not' : ''} called`,
			),
		);
	});
});

Dependencies

Frequently Asked Questions

What does static-build-vite-plugins.test.js do?
static-build-vite-plugins.test.js is a source file in the astro codebase, written in javascript. It belongs to the IntegrationAdapters domain.
What does static-build-vite-plugins.test.js depend on?
static-build-vite-plugins.test.js imports 4 module(s): loadFixture, node:test, strict, test-utils.js.
Where is static-build-vite-plugins.test.js in the architecture?
static-build-vite-plugins.test.js is located at packages/astro/test/static-build-vite-plugins.test.js (domain: IntegrationAdapters, directory: packages/astro/test).

Analyze Your Own Codebase

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

Try Supermodel Free