({
'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)
| 72 | } |
| 73 | |
| 74 | async 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 | } |
nothing calls this directly
no test coverage detected