@@ -96,15 +96,16 @@ class Channel implements Channel {
9696await this . context . setTutorial ( this . workspaceState , data )
9797
9898// validate dependencies
99- if ( data . config . dependencies ) {
100- for ( const dep of data . config . dependencies ) {
99+ const dependencies = data . config . dependencies
100+ if ( dependencies && dependencies . length ) {
101+ for ( const dep of dependencies ) {
101102// check dependency is installed
102- const currentVersion :string | null = await version ( name )
103+ const currentVersion :string | null = await version ( dep . name )
103104if ( ! currentVersion ) {
104105// use a custom error message
105106const error = {
106107type :'MissingTutorialDependency' ,
107- message :dep . message || `Process${ name } is required but not found. It may need to be installed` ,
108+ message :dep . message || `Process" ${ dep . name } " is required but not found. It may need to be installed` ,
108109actions :[
109110{
110111label :'Check Again' ,
@@ -117,16 +118,23 @@ class Channel implements Channel {
117118}
118119
119120// check dependency version
120- const satisfiedDependency = await compareVersions ( currentVersion , dep . version ) . catch ( ( error :Error ) => ( {
121- type :'UnmetTutorialDependency' ,
122- message :error . message ,
123- actions :[
124- {
125- label :'Check Again' ,
126- transition :'TRY_AGAIN' ,
127- } ,
128- ] ,
129- } ) )
121+ const satisfiedDependency = await compareVersions ( currentVersion , dep . version )
122+
123+ if ( ! satisfiedDependency ) {
124+ const error = {
125+ type :'UnmetTutorialDependency' ,
126+ message :`Expected${ dep . name } to have version${ dep . version } , but found version${ currentVersion } ` ,
127+ actions :[
128+ {
129+ label :'Check Again' ,
130+ transition :'TRY_AGAIN' ,
131+ } ,
132+ ] ,
133+ }
134+ this . send ( { type :'TUTORIAL_CONFIGURE_FAIL' , payload :{ error} } )
135+ return
136+ }
137+
130138if ( satisfiedDependency !== true ) {
131139const error = satisfiedDependency || {
132140type :'UnknownError' ,
@@ -247,7 +255,7 @@ class Channel implements Channel {
247255
248256if ( errorMarkdown ) {
249257// add a clearer error message for the user
250- error . message = `${ errorMarkdown } \n${ error . message } `
258+ error . message = `${ errorMarkdown } \n\n ${ error . message } `
251259}
252260}
253261