@@ -29,6 +29,8 @@ import settings.JsDynamicSettings
2929import settings.JsExportsSettings.endComment
3030import settings.JsExportsSettings.startComment
3131import settings.JsPackagesSettings.mochaData
32+ import settings.JsPackagesSettings.nycData
33+ import settings.JsPackagesSettings.ternData
3234import settings.JsTestGenerationSettings.dummyClassName
3335import settings.PackageData
3436import utils.JsCmdExec
@@ -56,9 +58,9 @@ object JsDialogProcessor {
5658 ) {
5759 override fun run (indicator : ProgressIndicator ) {
5860 invokeLater {
59- if ( ! mochaData.findPackageByNpm( model.project.basePath !! , model.pathToNPM)) {
60- installMissingRequirement (model.project, model.pathToNPM, mochaData )
61- }
61+ checkAndInstallRequirement( model.project, model.pathToNPM, mochaData)
62+ checkAndInstallRequirement (model.project, model.pathToNPM, nycData )
63+ checkAndInstallRequirement(model.project, model.pathToNPM, ternData)
6264 createDialog(model)?.let { dialogProcessor ->
6365 if (! dialogProcessor.showAndGet()) return @invokeLater
6466 // Since Tern.js accesses containing file, sync with file system required before test generation.
@@ -263,8 +265,21 @@ object JsDialogProcessor {
263265 }
264266}
265267
266- // TODO(MINOR): Add indicator.text for each installation
267- fun installMissingRequirement (project : Project , pathToNPM : String , requirement : PackageData ) {
268+ fun checkAndInstallRequirement (
269+ project : Project ,
270+ pathToNPM : String ,
271+ requirement : PackageData ,
272+ ) {
273+ if (! requirement.findPackageByNpm(project.basePath!! , pathToNPM)) {
274+ installMissingRequirement(project, pathToNPM, requirement)
275+ }
276+ }
277+
278+ private fun installMissingRequirement (
279+ project : Project ,
280+ pathToNPM : String ,
281+ requirement : PackageData ,
282+ ) {
268283 val message = """
269284 Requirement is not installed:
270285 ${requirement.packageName}
0 commit comments