mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-03 21:19:01 +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;
 | 
						|
};
 |