2019-06-13 16:44:58 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								const  path  =  require ( 'path' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-07-26 00:45:31 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  lint  =  require ( '.' ) ;  
						 
					
						
							
								
									
										
										
										
											2019-06-13 16:44:58 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								describe ( 'markdown linter' ,  ( )  =>  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  let  good  =  {  path :  path . join ( _ _dirname ,  './fixtures/good.md' )  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  let  badYML  =  {  path :  path . join ( _ _dirname ,  './fixtures/badYML.md' )  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  let  badFencing  =  {  path :  path . join ( _ _dirname ,  './fixtures/badFencing.md' )  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  beforeEach ( ( )  =>  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    console . log  =  jest . fn ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // the linter signals that a file failed by setting
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // exitCode to 1, so it needs (re)setting to 0
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    process . exitCode  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  afterEach ( ( )  =>  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    process . exitCode  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  it ( 'should pass `good` markdown' ,  done  =>  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  callback ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      expect ( process . exitCode ) . toBe ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      done ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    lint ( good ,  callback ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  it ( 'should fail invalid YML blocks' ,  done  =>  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  callback ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      expect ( process . exitCode ) . toBe ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      done ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    lint ( badYML ,  callback ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  it ( 'should fail when code fences are not surrounded by newlines' ,  done  =>  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  callback ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      expect ( process . exitCode ) . toBe ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      done ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    lint ( badFencing ,  callback ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  it ( 'should write to the console describing the problem' ,  done  =>  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  callback ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      const  expected  = 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        // eslint-disable-next-line max-len
 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-28 14:53:39 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        'badYML.md: 19: yaml-linter YAML code blocks should be valid [bad indentation of a mapping entry at line 3, column 17:\n          testString: testString\n                    ^] [Context: "```yml"]' ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-13 16:44:58 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								      expect ( console . log . mock . calls . length ) . toBe ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      expect ( console . log . mock . calls [ 0 ] [ 0 ] ) . toEqual ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        expect . stringContaining ( expected ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      done ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    lint ( badYML ,  callback ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ) ;