mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 02:16:05 +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;
 | |
| };
 |