2
2
var path = require ( 'path' ) ;
3
3
var fs = require ( 'fs' ) ;
4
4
var exists_1 = require ( '../services/exists' ) ;
5
+ var tutorialError = 'This is an error with the tutorial itself' ;
5
6
function packageJsonExists ( ) {
6
7
var pathToPackageJson = path . join ( window . coderoad . dir , 'package.json' ) ;
7
8
return exists_1 . fileExists ( pathToPackageJson ) ;
@@ -17,14 +18,31 @@ function loadRootPackageJson() {
17
18
exports . loadRootPackageJson = loadRootPackageJson ;
18
19
function _isTutorial ( name ) {
19
20
var pathToTutorialPackageJson = path . join ( window . coderoad . dir , 'node_modules' , name , 'package.json' ) ;
20
- if ( exists_1 . fileExists ( pathToTutorialPackageJson ) ) {
21
- var packageJson = JSON . parse ( fs . readFileSync ( pathToTutorialPackageJson , 'utf8' ) ) ;
22
- if ( packageJson . main && packageJson . main . match ( / c o d e r o a d .j s o n $ / ) ) {
23
- var pathToCoderoadJson = path . join ( window . coderoad . dir , 'node_modules' , name , packageJson . main ) ;
24
- return exists_1 . fileExists ( pathToCoderoadJson ) ;
25
- }
26
- }
27
- return false ;
21
+ if ( ! exists_1 . fileExists ( pathToTutorialPackageJson ) ) {
22
+ console . log ( "Error with " + name + ": no package.json file found. " + tutorialError ) ;
23
+ return false ;
24
+ }
25
+ var packageJson = JSON . parse ( fs . readFileSync ( pathToTutorialPackageJson , 'utf8' ) ) ;
26
+ if ( ! packageJson . main && packageJson . main . match ( / c o d e r o a d .j s o n $ / ) ) {
27
+ console . log ( "Error with " + name + ": main does not load a coderoad.json file. " + tutorialError ) ;
28
+ return false ;
29
+ }
30
+ var pathToCoderoadJson = path . join ( window . coderoad . dir , 'node_modules' , name , packageJson . main ) ;
31
+ if ( ! exists_1 . fileExists ( pathToCoderoadJson ) ) {
32
+ console . log ( "Error with " + name + ": no coderoad.json file. " + tutorialError ) ;
33
+ return false ;
34
+ }
35
+ ;
36
+ if ( ! packageJson . config || ! packageJson . config . testRunner ) {
37
+ console . log ( "Error with " + name + ": no test runner specified. " + tutorialError ) ;
38
+ return false ;
39
+ }
40
+ var pathToTestRunner = path . join ( window . coderoad . dir , 'node_modules' , packageJson . config . testRunner ) ;
41
+ if ( ! exists_1 . fileExists ( pathToTestRunner ) ) {
42
+ console . log ( "Error with " + name + ": " + packageJson . config . testRunner + " test runner not installed" ) ;
43
+ return false ;
44
+ }
45
+ return true ;
28
46
}
29
47
function searchForTutorials ( deps ) {
30
48
if ( ! ! deps && Object . keys ( deps ) . length > 0 ) {