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

throw.spec.js « acceptance « 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: 68e8cd2c1dbda1690d49557815e7af5720289d72 (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';

/* eslint no-throw-literal: off */

var Suite = require('../../lib/suite');
var Test = require('../../lib/test');
var Runner = require('../../lib/runner');

describe('a test that throws', function () {
  var suite, runner;

  beforeEach(function () {
    suite = new Suite('Suite', 'root');
    runner = new Runner(suite);
  });

  describe('undefined', function () {
    it('should not pass if throwing sync and test is sync', function (done) {
      var test = new Test('im sync and throw undefined sync', function () {
        throw undefined;
      });
      suite.addTest(test);
      runner = new Runner(suite);
      runner.on('end', function () {
        expect(runner.failures).to.equal(1);
        expect(test.state).to.equal('failed');
        done();
      });
      runner.run();
    });

    it('should not pass if throwing sync and test is async', function (done) {
      var test = new Test('im async and throw undefined sync', function (done2) {
        throw undefined;
      });
      suite.addTest(test);
      runner = new Runner(suite);
      runner.on('end', function () {
        expect(runner.failures).to.equal(1);
        expect(test.state).to.equal('failed');
        done();
      });
      runner.run();
    });

    it('should not pass if throwing async and test is async', function (done) {
      var test = new Test('im async and throw undefined async', function (done2) {
        process.nexTick(function () {
          throw undefined;
        });
      });
      suite.addTest(test);
      runner = new Runner(suite);
      runner.on('end', function () {
        expect(runner.failures).to.equal(1);
        expect(test.state).to.equal('failed');
        done();
      });
      runner.run();
    });
  });

  describe('null', function () {
    it('should not pass if throwing sync and test is sync', function (done) {
      var test = new Test('im sync and throw null sync', function () {
        throw null;
      });
      suite.addTest(test);
      runner = new Runner(suite);
      runner.on('end', function () {
        expect(runner.failures).to.equal(1);
        expect(test.state).to.equal('failed');
        done();
      });
      runner.run();
    });

    it('should not pass if throwing sync and test is async', function (done) {
      var test = new Test('im async and throw null sync', function (done2) {
        throw null;
      });
      suite.addTest(test);
      runner = new Runner(suite);
      runner.on('end', function () {
        expect(runner.failures).to.equal(1);
        expect(test.state).to.equal('failed');
        done();
      });
      runner.run();
    });

    it('should not pass if throwing async and test is async', function (done) {
      var test = new Test('im async and throw null async', function (done2) {
        process.nexTick(function () {
          throw null;
        });
      });
      suite.addTest(test);
      runner = new Runner(suite);
      runner.on('end', function () {
        expect(runner.failures).to.equal(1);
        expect(test.state).to.equal('failed');
        done();
      });
      runner.run();
    });
  });
});