summaryrefslogtreecommitdiffstats
path: root/vnfmarket/src/main/webapp/vnfmarket/node_modules/log4js/test/streams/BaseRollingFileStream-test.js
blob: a414d5a5b5fcb1e6fcb5f7e64e9617c213b67f04 (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
"use strict";
var vows = require('vows')
, assert = require('assert')
, fs = require('fs')
, sandbox = require('sandboxed-module');

vows.describe('../../lib/streams/BaseRollingFileStream').addBatch({
  'when node version < 0.10.0': {
    topic: function() {
      var streamLib = sandbox.load(
        '../../lib/streams/BaseRollingFileStream',
        {
          globals: {
            process: {
              version: '0.8.11'
            }
          },
          requires: {
            'readable-stream': {
              Writable: function() {}
            }
          }
        }
      );
      return streamLib.required;
    },
    'it should use readable-stream to maintain compatibility': function(required) {
      assert.ok(required['readable-stream']);
      assert.ok(!required.stream);
    }
  },

  'when node version > 0.10.0': {
    topic: function() {
      var streamLib = sandbox.load(
        '../../lib/streams/BaseRollingFileStream',
        {
          globals: {
            process: {
              version: '0.10.1'
            }
          },
          requires: {
            'stream': {
              Writable: function() {}
            }
          }
        }
      );
      return streamLib.required;
    },
    'it should use the core stream module': function(required) {
      assert.ok(required.stream);
      assert.ok(!required['readable-stream']);
    }
  },

  'when no filename is passed': {
    topic: require('../../lib/streams/BaseRollingFileStream'),
    'it should throw an error': function(BaseRollingFileStream) {
      try {
        new BaseRollingFileStream();
        assert.fail('should not get here');
      } catch (e) {
        assert.ok(e);
      }
    }
  },

  'default behaviour': {
    topic: function() {
      var BaseRollingFileStream = require('../../lib/streams/BaseRollingFileStream')
      , stream = new BaseRollingFileStream('basetest.log');
      return stream;
    },
    teardown: function() {
      try {
        fs.unlink('basetest.log');
      } catch (e) {
        console.error("could not remove basetest.log", e);
      }
    },
    'it should not want to roll': function(stream) {
      assert.isFalse(stream.shouldRoll());
    },
    'it should not roll': function(stream) {
      var cbCalled = false;
      //just calls the callback straight away, no async calls
      stream.roll('basetest.log', function() { cbCalled = true; });
      assert.isTrue(cbCalled);
    }
  }
}).exportTo(module);