« index

Coverage for /Users/yunong/workspace/node-restify/test/lib/helper.js : 92%

99 lines | 92 run | 7 missing | 0 partial | 18 blocks | 14 blocks run | 4 blocks missing

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

  // Copyright 2012 Mark Cavage.  All rights reserved.
  //
  // Just a simple wrapper over nodeunit's exports syntax. Also exposes
  // a common logger for all tests.
  //
  
  var domain = require('domain');
  
  var bunyan = require('bunyan');
  var once = require('once');
  
  var restify = require('../../lib');
  
  
  ///--- Exports
  
  module.exports = {
  
      after: function after(teardown) {
          module.parent.exports.tearDown = function _teardown(callback) {
              var d = domain.create();
              var self = this;
  
              d.once('error', function (err) {
                  console.error('after: uncaught error\n', +
                      err.stack);
                  process.exit(1);
              });
  
              d.run(function () {
                  teardown.call(self, once(callback));
              });
          };
      },
  
      before: function before(setup) {
          module.parent.exports.setUp = function _setup(callback) {
              var d = domain.create();
              var self = this;
  
              d.once('error', function (err) {
                  console.error('before: uncaught error\n' +
                      err.stack);
                  process.exit(1);
              });
  
              d.run(function () {
                  setup.call(self, once(callback));
              });
          };
      },
  
      test: function test(name, tester) {
          module.parent.exports[name] = function _(t) {
              var d = domain.create();
              var self = this;
  
              d.once('error', function (err) {
                  t.ifError(err);
                  t.end();
              });
  
              d.add(t);
              d.run(function () {
                  t.end = once(function () {
                      t.done();
                  });
                  t.notOk = function notOk(ok, message) {
                      return (t.ok(!ok, message));
                  };
  
                  tester.call(self, t);
              });
          };
      },
  
      getLog: function (name, stream, level) {
          return (bunyan.createLogger({
              level: (process.env.LOG_LEVEL || level || 'fatal'),
              name: name || process.argv[1],
              stream: stream || process.stdout,
              src: true,
              serializers: restify.bunyan.serializers
          }));
      },
  
  
      get dtrace() {
          var dtp;
          try {
              var d = require('dtrace-provider');
              dtp = d.createDTraceProvider('restifyUnitTest');
          } catch (e) {
              dtp = null;
          }
  
          return (dtp);
      }
  };
« index | cover.io