Beispiel #1
0
  , getResultsDisplayText: function(){
    var appview = this.get('appview')
    var runner = this.get('runner')
    var idx = appview.get('currentTab')
    var results = runner.get('results')
    var topLevelError = results ? results.get('topLevelError') : null
    var tests = null
    var out = ''
    var pendingOut = ''

    if (topLevelError){
      out += "Top Level:\n" + indent(topLevelError) + '\n\n'
    }

    if (results && (tests = results.get('tests'))){
      var total = results.get('total')
      var pending = results.get('pending')
      var allDone = results.get('all')
      if (!total){
        out = allDone ? 'No tests were run :(' : 'Please be patient :)'
      }else{
        var failedTests = tests.filter(function(test){
          return test.get('failed') > 0
        })
        if (failedTests.length > 0){
           out += failedTests.map(failedTestDisplay).join('\n')
        }else{ // All passed
          if (allDone){
            var pendingTests = tests.filter(function(test){
              return test.get('pending') > 0
            })
            out += Chars.success + ' ' + total + ' tests complete'
            if (pending > 0){
              out += ' (' + pending + ' pending)'
            }
            out += '.'
            if (pending){
              pendingOut += '\n\n'
              pendingOut += pendingTests.map(function(test) {
                return '[PENDING] ' + test.get('name')
              }).join('\n')
            }
          }else{
            out += 'Looking good...'
          }
        }
      }
    }

    return StyledString(out, {foreground: 'cyan'})
      .append(StyledString(pendingOut, {foreground: 'yellow'}))
  }
Beispiel #2
0
 it('splits on newline', function() {
   var s = styledString('abc\ndef', {foreground: 'red'});
   var ss = splitLines(s, 10);
   expect(ss.length).to.equal(2);
   expect(ss[0].toString()).to.equal('\u001b[31mabc\u001b[0m');
   expect(ss[1].toString()).to.equal('\u001b[31mdef\u001b[0m');
 });
Beispiel #3
0
 it('handles empty lines', function() {
   var s = styledString('abc\n\ndef');
   var lines = splitLines(s, 5);
   assert.equal(lines.length, 3);
   assert.equal(lines[0].toString(), 'abc');
   assert.equal(lines[1].toString(), '');
   assert.equal(lines[2].toString(), 'def');
 });
Beispiel #4
0
 it('splits and then breaks', function() {
   var s = styledString('abcd\nefghijkl', {foreground: 'red'});
   var ss = splitLines(s, 5);
   expect(ss.length).to.equal(3);
   expect(ss[0].toString()).to.equal('\u001b[31mabcd\u001b[0m');
   expect(ss[1].toString()).to.equal('\u001b[31mefghi\u001b[0m');
   expect(ss[2].toString()).to.equal('\u001b[31mjkl\u001b[0m');
 });
Beispiel #5
0
 , onEMFILE: function(){
   var view = this.view
   var text = [
     'The file watcher received a EMFILE system error, which means that ',
     'it has hit the maximum number of files that can be open at a time. ',
     'Luckily, you can increase this limit as a workaround. See the directions below \n \n',
     'Linux: http://stackoverflow.com/a/34645/5304\n',
     'Mac OS: http://serverfault.com/a/15575/47234'
   ].join('')
   view.setErrorPopupMessage(StyledString(text + '\n ').foreground('megenta'))
 }
 self.startOnStartHook(function(err){
   if (err){
     var titleText = 'Error running on_start hook'
     var title = StyledString(titleText + '\n ').foreground('red')
     var errMsgs = StyledString('\n' + err.name).foreground('white')
       .concat(StyledString('\n' + err.stdout).foreground('yellow'))
       .concat(StyledString('\n' + err.stderr).foreground('red'))
     view.setErrorPopupMessage(title.concat(errMsgs))
     log.log('warn', titleText, {
       name: err.name,
       stdout: err.stdout,
       stderr: err.stderr
     })
     return
   } else {
     self.startTests(function(){
       self.initLaunchers()
     })
   }
 })
Beispiel #7
0
 , getMessagesText: function(){
   var messages = this.get('runner').get('messages')
   var retval = StyledString('')
   
   messages.forEach(function(message, i){
     var type = message.get('type')
     var text = message.get('text')
     var color = message.get('color') || ( type === 'error' ? 'red' : 'yellow' )
     retval = retval.concat(StyledString(text, {foreground: color}))
   })
   return retval
 }
 this.runPreprocessors(function(err){
   if (err){
     var titleText = 'Error running before_tests hook'
     var title = StyledString(titleText + '\n ').foreground('red')
     var errMsgs = StyledString('\n' + err.name).foreground('white')
       .concat(StyledString('\n' + err.stdout).foreground('yellow'))
       .concat(StyledString('\n' + err.stderr).foreground('red'))
     view.setErrorPopupMessage(title.concat(errMsgs))
     log.log('warn', titleText, {
       name: err.name,
       stdout: err.stdout,
       stderr: err.stderr
     })
     return
   }else{
     view.clearErrorPopupMessage()
     runners.forEach(function(runner){
       runner.startTests()
     })
     if (callback) callback()
   }
 })
Beispiel #9
0
 messages.forEach(function(message, i){
   var type = message.get('type')
   var text = message.get('text')
   var color = message.get('color') || ( type === 'error' ? 'red' : 'yellow' )
   retval = retval.concat(StyledString(text, {foreground: color}))
 })