mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-30 18:05:55 +01:00 
			
		
		
		
	
		
			
	
	
		
			191 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			191 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | /* | ||
|  | Copyright (c) 2008-2017 Pivotal Labs | ||
|  | 
 | ||
|  | Permission is hereby granted, free of charge, to any person obtaining | ||
|  | a copy of this software and associated documentation files (the | ||
|  | "Software"), to deal in the Software without restriction, including | ||
|  | without limitation the rights to use, copy, modify, merge, publish, | ||
|  | distribute, sublicense, and/or sell copies of the Software, and to | ||
|  | permit persons to whom the Software is furnished to do so, subject to | ||
|  | the following conditions: | ||
|  | 
 | ||
|  | The above copyright notice and this permission notice shall be | ||
|  | included in all copies or substantial portions of the Software. | ||
|  | 
 | ||
|  | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
|  | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||
|  | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
|  | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE | ||
|  | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION | ||
|  | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | ||
|  | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
|  | */ | ||
|  | function getJasmineRequireObj() { | ||
|  |   if (typeof module !== 'undefined' && module.exports) { | ||
|  |     return exports; | ||
|  |   } else { | ||
|  |     window.jasmineRequire = window.jasmineRequire || {}; | ||
|  |     return window.jasmineRequire; | ||
|  |   } | ||
|  | } | ||
|  | 
 | ||
|  | getJasmineRequireObj().console = function(jRequire, j$) { | ||
|  |   j$.ConsoleReporter = jRequire.ConsoleReporter(); | ||
|  | }; | ||
|  | 
 | ||
|  | getJasmineRequireObj().ConsoleReporter = function() { | ||
|  | 
 | ||
|  |   var noopTimer = { | ||
|  |     start: function(){}, | ||
|  |     elapsed: function(){ return 0; } | ||
|  |   }; | ||
|  | 
 | ||
|  |   function ConsoleReporter(options) { | ||
|  |     var print = options.print, | ||
|  |       showColors = options.showColors || false, | ||
|  |       onComplete = options.onComplete || function() {}, | ||
|  |       timer = options.timer || noopTimer, | ||
|  |       specCount, | ||
|  |       failureCount, | ||
|  |       failedSpecs = [], | ||
|  |       pendingCount, | ||
|  |       ansi = { | ||
|  |         green: '\x1B[32m', | ||
|  |         red: '\x1B[31m', | ||
|  |         yellow: '\x1B[33m', | ||
|  |         none: '\x1B[0m' | ||
|  |       }, | ||
|  |       failedSuites = []; | ||
|  | 
 | ||
|  |     print('ConsoleReporter is deprecated and will be removed in a future version.'); | ||
|  | 
 | ||
|  |     this.jasmineStarted = function() { | ||
|  |       specCount = 0; | ||
|  |       failureCount = 0; | ||
|  |       pendingCount = 0; | ||
|  |       print('Started'); | ||
|  |       printNewline(); | ||
|  |       timer.start(); | ||
|  |     }; | ||
|  | 
 | ||
|  |     this.jasmineDone = function() { | ||
|  |       printNewline(); | ||
|  |       for (var i = 0; i < failedSpecs.length; i++) { | ||
|  |         specFailureDetails(failedSpecs[i]); | ||
|  |       } | ||
|  | 
 | ||
|  |       if(specCount > 0) { | ||
|  |         printNewline(); | ||
|  | 
 | ||
|  |         var specCounts = specCount + ' ' + plural('spec', specCount) + ', ' + | ||
|  |           failureCount + ' ' + plural('failure', failureCount); | ||
|  | 
 | ||
|  |         if (pendingCount) { | ||
|  |           specCounts += ', ' + pendingCount + ' pending ' + plural('spec', pendingCount); | ||
|  |         } | ||
|  | 
 | ||
|  |         print(specCounts); | ||
|  |       } else { | ||
|  |         print('No specs found'); | ||
|  |       } | ||
|  | 
 | ||
|  |       printNewline(); | ||
|  |       var seconds = timer.elapsed() / 1000; | ||
|  |       print('Finished in ' + seconds + ' ' + plural('second', seconds)); | ||
|  |       printNewline(); | ||
|  | 
 | ||
|  |       for(i = 0; i < failedSuites.length; i++) { | ||
|  |         suiteFailureDetails(failedSuites[i]); | ||
|  |       } | ||
|  | 
 | ||
|  |       onComplete(failureCount === 0); | ||
|  |     }; | ||
|  | 
 | ||
|  |     this.specDone = function(result) { | ||
|  |       specCount++; | ||
|  | 
 | ||
|  |       if (result.status == 'pending') { | ||
|  |         pendingCount++; | ||
|  |         print(colored('yellow', '*')); | ||
|  |         return; | ||
|  |       } | ||
|  | 
 | ||
|  |       if (result.status == 'passed') { | ||
|  |         print(colored('green', '.')); | ||
|  |         return; | ||
|  |       } | ||
|  | 
 | ||
|  |       if (result.status == 'failed') { | ||
|  |         failureCount++; | ||
|  |         failedSpecs.push(result); | ||
|  |         print(colored('red', 'F')); | ||
|  |       } | ||
|  |     }; | ||
|  | 
 | ||
|  |     this.suiteDone = function(result) { | ||
|  |       if (result.failedExpectations && result.failedExpectations.length > 0) { | ||
|  |         failureCount++; | ||
|  |         failedSuites.push(result); | ||
|  |       } | ||
|  |     }; | ||
|  | 
 | ||
|  |     return this; | ||
|  | 
 | ||
|  |     function printNewline() { | ||
|  |       print('\n'); | ||
|  |     } | ||
|  | 
 | ||
|  |     function colored(color, str) { | ||
|  |       return showColors ? (ansi[color] + str + ansi.none) : str; | ||
|  |     } | ||
|  | 
 | ||
|  |     function plural(str, count) { | ||
|  |       return count == 1 ? str : str + 's'; | ||
|  |     } | ||
|  | 
 | ||
|  |     function repeat(thing, times) { | ||
|  |       var arr = []; | ||
|  |       for (var i = 0; i < times; i++) { | ||
|  |         arr.push(thing); | ||
|  |       } | ||
|  |       return arr; | ||
|  |     } | ||
|  | 
 | ||
|  |     function indent(str, spaces) { | ||
|  |       var lines = (str || '').split('\n'); | ||
|  |       var newArr = []; | ||
|  |       for (var i = 0; i < lines.length; i++) { | ||
|  |         newArr.push(repeat(' ', spaces).join('') + lines[i]); | ||
|  |       } | ||
|  |       return newArr.join('\n'); | ||
|  |     } | ||
|  | 
 | ||
|  |     function specFailureDetails(result) { | ||
|  |       printNewline(); | ||
|  |       print(result.fullName); | ||
|  | 
 | ||
|  |       for (var i = 0; i < result.failedExpectations.length; i++) { | ||
|  |         var failedExpectation = result.failedExpectations[i]; | ||
|  |         printNewline(); | ||
|  |         print(indent(failedExpectation.message, 2)); | ||
|  |         print(indent(failedExpectation.stack, 2)); | ||
|  |       } | ||
|  | 
 | ||
|  |       printNewline(); | ||
|  |     } | ||
|  | 
 | ||
|  |     function suiteFailureDetails(result) { | ||
|  |       for (var i = 0; i < result.failedExpectations.length; i++) { | ||
|  |         printNewline(); | ||
|  |         print(colored('red', 'An error was thrown in an afterAll')); | ||
|  |         printNewline(); | ||
|  |         print(colored('red', 'AfterAll ' + result.failedExpectations[i].message)); | ||
|  | 
 | ||
|  |       } | ||
|  |       printNewline(); | ||
|  |     } | ||
|  |   } | ||
|  | 
 | ||
|  |   return ConsoleReporter; | ||
|  | }; |