| 
									
										
										
										
											2017-05-18 20:40:09 +00:00
										 |  |  | import * as plugins from './mod.plugins' | 
					
						
							|  |  |  | import { bash, yarnAvailable } from '../npmci.bash' | 
					
						
							|  |  |  | import * as env from '../npmci.env' | 
					
						
							|  |  |  | import * as npmciMods from '../npmci.mods' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // interfaces
 | 
					
						
							|  |  |  | import { Dockerfile } from '../mod_docker/index' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let npmDependencies = async (): Promise<void> => { | 
					
						
							|  |  |  |   plugins.beautylog.info('now installing dependencies:') | 
					
						
							|  |  |  |   if (await yarnAvailable.promise) { | 
					
						
							| 
									
										
										
										
											2017-06-30 23:33:56 +02:00
										 |  |  |     await bash('yarn install') | 
					
						
							| 
									
										
										
										
											2017-05-18 20:40:09 +00:00
										 |  |  |   } else { | 
					
						
							|  |  |  |     await bash('npm install') | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let npmTest = async (): Promise<void> => { | 
					
						
							|  |  |  |   plugins.beautylog.info('now starting tests:') | 
					
						
							|  |  |  |   await bash('npm test') | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-07-27 14:20:56 +02:00
										 |  |  | let testDocker = async (argvArg): Promise<Dockerfile[]> => { | 
					
						
							| 
									
										
										
										
											2017-05-18 20:40:09 +00:00
										 |  |  |   let modDocker = await npmciMods.modDocker.load() | 
					
						
							| 
									
										
										
										
											2017-07-27 14:20:56 +02:00
										 |  |  |   return await modDocker.readDockerfiles(argvArg) | 
					
						
							| 
									
										
										
										
											2017-05-18 20:40:09 +00:00
										 |  |  |     .then(modDocker.pullDockerfileImages) | 
					
						
							|  |  |  |     .then(modDocker.testDockerfiles) | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * the main test function | 
					
						
							|  |  |  |  * @param versionArg | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2017-07-27 14:20:56 +02:00
										 |  |  | export let test = async (argvArg): Promise<void> => { | 
					
						
							|  |  |  |   let whatToTest = argvArg._[1] | 
					
						
							|  |  |  |   if (whatToTest === 'docker') { | 
					
						
							|  |  |  |     await testDocker(argvArg) | 
					
						
							| 
									
										
										
										
											2017-05-18 20:40:09 +00:00
										 |  |  |   } else { | 
					
						
							|  |  |  |     let modInstall = await npmciMods.modInstall.load() | 
					
						
							| 
									
										
										
										
											2017-07-27 14:20:56 +02:00
										 |  |  |     await modInstall.install(whatToTest) | 
					
						
							| 
									
										
										
										
											2017-05-18 20:40:09 +00:00
										 |  |  |       .then(npmDependencies) | 
					
						
							|  |  |  |       .then(npmTest) | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 |