Sha256: ba2d5931fcd12053230103162ad8b46482c74dde8d6e907f3b11149772c3d03b

Contents?: true

Size: 1.55 KB

Versions: 2

Compression:

Stored size: 1.55 KB

Contents

(function(){
  if (!navigator.userAgent.match(/phantomjs/i)) {
    return;
  }

  var stats = {
    passes: 0,
    fails: 0,
    pending: 0,
    elapsed: 0,
    assertions: 0,
    tests: 0
  };

  var start, assertion;

  QUnit.testStart(function(data){
    assertion = null;
    stats.tests += 1;

    callPhantom({
      name: 'test start',
      title: data.name
    });
  });

  QUnit.log(function(data){
    stats.assertions += 1;

    if (!assertion && !data.result) {
      assertion = data;
    }
  });

  QUnit.moduleStart(function(data){
    callPhantom({
      name: 'suite start',
      title: data.name
    });
  });

  QUnit.testDone(function(data){
    var error;

    if (data.failed) {
      stats.fails += 1;
      error = assertion.message;

      if (assertion.source) {
        error += '\n' + assertion.source;
      }

      error = error.replace(/(Died on test #\d+)/gmi, '$1\n');
      error = error.replace(/^\s*/gm, '    ');
      error = error.replace(/^\s+at .*?assets\/qunit\/qunit.*?\.js.*?$/mg, '');
      error = error.replace(/\n+$/, '');
    } else if (data.skipped) {
      stats.pending += 1;
    } else {
      stats.passes += 1;
    }

    callPhantom({
      name: 'test end',
      title: data.name,
      passed: data.failed === 0 && !data.skipped,
      pending: data.skipped,
      failure: error
    });
  });

  QUnit.begin(function(data){
    start = new Date().getTime();
  });

  QUnit.done(function(data){
    stats.elapsed = new Date().getTime() - start;

    callPhantom({
      name: 'end',
      stats: stats
    });
  });
})();

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
test_squad-0.1.0 app/assets/javascripts/test_squad/qunit-phantom.js
test_squad-0.0.1 app/assets/javascripts/test_squad/qunit-phantom.js