Home / File/ docs.test.js — astro Source File

docs.test.js — astro Source File

Architecture documentation for docs.test.js, a javascript file in the astro codebase. 11 imports, 0 dependents.

Entity Profile

Dependency Diagram

graph LR
  83dc38d1_df1f_f39d_79ed_a93a0d42bc04["docs.test.js"]
  0bb84f6c_fe6e_e843_78d4_ce459932ee31["../../../dist/cli/docs/core/open-docs.js"]
  83dc38d1_df1f_f39d_79ed_a93a0d42bc04 --> 0bb84f6c_fe6e_e843_78d4_ce459932ee31
  e1f44812_b641_06e3_c6ce_2f6c32a0ff1d["../../../dist/cli/docs/infra/process-cloud-ide-provider.js"]
  83dc38d1_df1f_f39d_79ed_a93a0d42bc04 --> e1f44812_b641_06e3_c6ce_2f6c32a0ff1d
  b0be4d0c_86b6_a283_f2af_003189bfd572["test-utils.js"]
  83dc38d1_df1f_f39d_79ed_a93a0d42bc04 --> b0be4d0c_86b6_a283_f2af_003189bfd572
  e6d936de_adfc_6f29_c26b_58af0a66adc5["SpyLogger"]
  83dc38d1_df1f_f39d_79ed_a93a0d42bc04 --> e6d936de_adfc_6f29_c26b_58af0a66adc5
  dc38b823_10e6_0080_9a8c_08dc7cc3e0eb["utils.js"]
  83dc38d1_df1f_f39d_79ed_a93a0d42bc04 --> dc38b823_10e6_0080_9a8c_08dc7cc3e0eb
  3cd3166d_58db_33ed_f9fd_de6da61e2611["FakeCloudIdeProvider"]
  83dc38d1_df1f_f39d_79ed_a93a0d42bc04 --> 3cd3166d_58db_33ed_f9fd_de6da61e2611
  4c44a7e7_d557_5a60_a2f4_42bf0e95a9b8["FakeOperatingSystemProvider"]
  83dc38d1_df1f_f39d_79ed_a93a0d42bc04 --> 4c44a7e7_d557_5a60_a2f4_42bf0e95a9b8
  b11e1880_94ce_e479_e742_7595fc12e3b0["PassthroughCommandRunner"]
  83dc38d1_df1f_f39d_79ed_a93a0d42bc04 --> b11e1880_94ce_e479_e742_7595fc12e3b0
  4015699c_a2bd_40eb_480e_25e604ae67ec["SpyCommandExecutor"]
  83dc38d1_df1f_f39d_79ed_a93a0d42bc04 --> 4015699c_a2bd_40eb_480e_25e604ae67ec
  e1e2fac7_5a95_7a88_cb1e_0a3b91c4e607["strict"]
  83dc38d1_df1f_f39d_79ed_a93a0d42bc04 --> e1e2fac7_5a95_7a88_cb1e_0a3b91c4e607
  6b0635f9_51ea_77aa_767b_7857878e98a6["node:test"]
  83dc38d1_df1f_f39d_79ed_a93a0d42bc04 --> 6b0635f9_51ea_77aa_767b_7857878e98a6
  style 83dc38d1_df1f_f39d_79ed_a93a0d42bc04 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

// @ts-check
import assert from 'node:assert/strict';
import { after, before, describe, it } from 'node:test';
import { openDocsCommand } from '../../../dist/cli/docs/core/open-docs.js';
import { ProcessCloudIdeProvider } from '../../../dist/cli/docs/infra/process-cloud-ide-provider.js';
import { SpyLogger } from '../test-utils.js';
import {
	FakeCloudIdeProvider,
	FakeOperatingSystemProvider,
	PassthroughCommandRunner,
	SpyCommandExecutor,
} from './utils.js';

describe('CLI docs', () => {
	describe('core', () => {
		describe('openDocsCommand', () => {
			it('logs an error if the platform is unsupported', async () => {
				const logger = new SpyLogger();
				const runner = new PassthroughCommandRunner();
				const operatingSystemProvider = new FakeOperatingSystemProvider('aix');
				const cloudIdeProvider = new FakeCloudIdeProvider(null);
				const commandExecutor = new SpyCommandExecutor();

				await runner.run(openDocsCommand, {
					url: 'https://astro.build/',
					logger,
					operatingSystemProvider,
					commandExecutor,
					cloudIdeProvider,
				});

				assert.equal(logger.logs[0].type, 'error');
				assert.match(logger.logs[0].message, /It looks like your platform/);
				assert.deepStrictEqual(commandExecutor.inputs, []);
			});

			it('executes the command correctly on supported platforms', async () => {
				const logger = new SpyLogger();
				const runner = new PassthroughCommandRunner();
				const operatingSystemProvider = new FakeOperatingSystemProvider('linux');
				const cloudIdeProvider = new FakeCloudIdeProvider(null);
				const commandExecutor = new SpyCommandExecutor();

				await runner.run(openDocsCommand, {
					url: 'https://astro.build/',
					logger,
					operatingSystemProvider,
					commandExecutor,
					cloudIdeProvider,
				});

				assert.deepStrictEqual(logger.logs, []);
				assert.equal(commandExecutor.inputs.length, 1);
				assert.equal(commandExecutor.inputs[0].args?.at(-1), 'https://astro.build/');
			});
		});
	});

	describe('infra', () => {
		describe('ProcessCloudIdeProvider', () => {
			/** @type {string | undefined} */
			let prev;

			before(() => {
				prev = process.env.GITPOD_REPO_ROOT;
				delete process.env.GITPOD_REPO_ROOT;
			});

			after(() => {
				if (prev) {
					process.env.GITPOD_REPO_ROOT = prev;
				}
			});

			it('handles gitpod', () => {
				process.env.GITPOD_REPO_ROOT = '/foo/bar/';
				const cloudIdeaProvider = new ProcessCloudIdeProvider();

				const platform = cloudIdeaProvider.name;

				assert.equal(platform, 'gitpod');
			});
		});
	});
});

Dependencies

Frequently Asked Questions

What does docs.test.js do?
docs.test.js is a source file in the astro codebase, written in javascript. It belongs to the IntegrationAdapters domain.
What does docs.test.js depend on?
docs.test.js imports 11 module(s): ../../../dist/cli/docs/core/open-docs.js, ../../../dist/cli/docs/infra/process-cloud-ide-provider.js, FakeCloudIdeProvider, FakeOperatingSystemProvider, PassthroughCommandRunner, SpyCommandExecutor, SpyLogger, node:test, and 3 more.
Where is docs.test.js in the architecture?
docs.test.js is located at packages/astro/test/units/cli/docs.test.js (domain: IntegrationAdapters, directory: packages/astro/test/units/cli).

Analyze Your Own Codebase

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

Try Supermodel Free