Welcome to mirror list, hosted at ThFree Co, Russian Federation.

retries.spec.js « integration « test « mocha-3.1.2 « lib « tests - github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 28ed702c5f59f15dcb21abae4434dcef6393c79f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
'use strict';

var assert = require('assert');
var helpers = require('./helpers');
var args = [];
var bang = require('../../lib/reporters/base').symbols.bang;

describe('retries', function () {
  it('are ran in correct order', function (done) {
    helpers.runMocha('retries/hooks.fixture.js', args, function (err, res) {
      var lines, expected;

      assert(!err);

      lines = res.output.split(helpers.splitRegExp).map(function (line) {
        return line.trim();
      }).filter(function (line) {
        return line.length;
      }).slice(0, -1);

      expected = [
        'before',
        'before each 0',
        'TEST 0',
        'after each 1',
        'before each 1',
        'TEST 1',
        'after each 2',
        'before each 2',
        'TEST 2',
        'after each 3',
        'before each 3',
        'TEST 3',
        'after each 4',
        'before each 4',
        'TEST 4',
        bang + 'after each 5',
        'after'
      ];

      expected.forEach(function (line, i) {
        assert.equal(lines[i], line);
      });

      assert.equal(res.code, 1);
      done();
    });
  });

  it('should exit early if test passes', function (done) {
    helpers.runMochaJSON('retries/early-pass.fixture.js', args, function (err, res) {
      assert(!err);
      assert.equal(res.stats.passes, 1);
      assert.equal(res.stats.failures, 0);
      assert.equal(res.tests[0].currentRetry, 1);
      assert.equal(res.stats.tests, 1);
      assert.equal(res.code, 0);
      done();
    });
  });

  it('should let test override', function (done) {
    helpers.runMochaJSON('retries/nested.fixture.js', args, function (err, res) {
      assert(!err);
      assert.equal(res.stats.passes, 0);
      assert.equal(res.stats.failures, 1);
      assert.equal(res.stats.tests, 1);
      assert.equal(res.tests[0].currentRetry, 1);
      assert.equal(res.code, 1);
      done();
    });
  });

  it('should not hang w/ async test', function (done) {
    helpers.runMocha('retries/async.fixture.js', args, function (err, res) {
      var lines, expected;

      assert(!err);

      lines = res.output.split(helpers.splitRegExp).map(function (line) {
        return line.trim();
      }).filter(function (line) {
        return line.length;
      }).slice(0, -1);

      expected = [
        'before',
        'before each 0',
        'TEST 0',
        'after each 1',
        'before each 1',
        'TEST 1',
        'after each 2',
        'before each 2',
        'TEST 2',
        'after each 3',
        'after'
      ];

      expected.forEach(function (line, i) {
        assert.equal(lines[i], line);
      });

      assert.equal(res.code, 0);
      done();
    });
  });
});