MCPcopy Index your code
hub / github.com/devcontainers/cli / featuresTest

Function featuresTest

src/spec-node/featuresCLI/test.ts:74–127  ·  view source on GitHub ↗
({
	'base-image': baseImage,
	'target': collectionFolder_deprecated,
	'project-folder': collectionFolder,
	features,
	filter,
	'global-scenarios-only': globalScenariosOnly,
	'skip-scenarios': skipScenarios,
	'skip-autogenerated': skipAutogenerated,
	'skip-duplicated': skipDuplicateTest,
	'permit-randomization': permitRandomization,
	'remote-user': remoteUser,
	'log-level': inputLogLevel,
	'preserve-test-containers': preserveTestContainers,
	quiet,
}: FeaturesTestArgs)

Source from the content-addressed store, hash-verified

72}
73
74async function featuresTest({
75 'base-image': baseImage,
76 'target': collectionFolder_deprecated,
77 'project-folder': collectionFolder,
78 features,
79 filter,
80 'global-scenarios-only': globalScenariosOnly,
81 'skip-scenarios': skipScenarios,
82 'skip-autogenerated': skipAutogenerated,
83 'skip-duplicated': skipDuplicateTest,
84 'permit-randomization': permitRandomization,
85 'remote-user': remoteUser,
86 'log-level': inputLogLevel,
87 'preserve-test-containers': preserveTestContainers,
88 quiet,
89}: FeaturesTestArgs) {
90 const disposables: (() => Promise<unknown> | undefined)[] = [];
91 const dispose = async () => {
92 await Promise.all(disposables.map(d => d()));
93 };
94
95 const cwd = process.cwd();
96 const cliHost = await getCLIHost(cwd, loadNativeModule, true);
97 const pkg = getPackageConfig();
98
99 const logLevel = mapLogLevel(inputLogLevel);
100
101 // Prefer the new --project-folder option over the deprecated positional argument.
102 const targetProject = collectionFolder !== '.' ? collectionFolder : collectionFolder_deprecated;
103
104 const args: FeaturesTestCommandInput = {
105 baseImage,
106 cliHost,
107 logLevel,
108 quiet,
109 pkg,
110 collectionFolder: cliHost.path.resolve(targetProject),
111 features: features ? (Array.isArray(features) ? features as string[] : [features]) : undefined,
112 filter,
113 globalScenariosOnly,
114 skipScenarios,
115 skipAutogenerated,
116 skipDuplicateTest,
117 permitRandomization,
118 remoteUser,
119 preserveTestContainers,
120 disposables
121 };
122
123 const exitCode = await doFeaturesTestCommand(args);
124
125 await dispose();
126 process.exit(exitCode);
127}

Callers

nothing calls this directly

Calls 5

getCLIHostFunction · 0.90
getPackageConfigFunction · 0.90
mapLogLevelFunction · 0.90
doFeaturesTestCommandFunction · 0.90
disposeFunction · 0.70

Tested by

no test coverage detected