not-deep-equal-failure.js 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. 'use strict';
  2. var tape = require('../');
  3. var tap = require('tap');
  4. var concat = require('concat-stream');
  5. var tapParser = require('tap-parser');
  6. var common = require('./common');
  7. var getDiag = common.getDiag;
  8. var stripFullStack = common.stripFullStack;
  9. tap.test('deep equal failure', function (assert) {
  10. var test = tape.createHarness({ exit: false });
  11. var stream = test.createStream();
  12. var parser = tapParser();
  13. assert.plan(3);
  14. stream.pipe(parser);
  15. stream.pipe(concat(function (body) {
  16. assert.same(stripFullStack(body.toString('utf8')), [
  17. 'TAP version 13',
  18. '# not deep equal',
  19. 'not ok 1 should not be equivalent',
  20. ' ---',
  21. ' operator: notDeepEqual',
  22. ' expected: |-',
  23. ' { b: 2 }',
  24. ' actual: |-',
  25. ' { b: 2 }',
  26. ' at: Test.<anonymous> ($TEST/not-deep-equal-failure.js:$LINE:$COL)',
  27. ' stack: |-',
  28. ' Error: should not be equivalent',
  29. ' [... stack stripped ...]',
  30. ' at Test.<anonymous> ($TEST/not-deep-equal-failure.js:$LINE:$COL)',
  31. ' [... stack stripped ...]',
  32. ' ...',
  33. '',
  34. '1..1',
  35. '# tests 1',
  36. '# pass 0',
  37. '# fail 1',
  38. ''
  39. ]);
  40. assert.deepEqual(getDiag(body), {
  41. operator: 'notDeepEqual',
  42. expected: '{ b: 2 }',
  43. actual: '{ b: 2 }'
  44. });
  45. }));
  46. parser.once('assert', function (data) {
  47. delete data.diag.stack;
  48. delete data.diag.at;
  49. assert.deepEqual(data, {
  50. ok: false,
  51. id: 1,
  52. name: 'should not be equivalent',
  53. diag: {
  54. operator: 'notDeepEqual',
  55. expected: '{ b: 2 }',
  56. actual: '{ b: 2 }'
  57. }
  58. });
  59. });
  60. test('not deep equal', function (t) {
  61. t.plan(1);
  62. t.notDeepEqual({ b: 2 }, { b: 2 });
  63. });
  64. });
  65. tap.test('not deep equal failure, depth 6, with option', function (assert) {
  66. var test = tape.createHarness({ exit: false });
  67. var stream = test.createStream();
  68. var parser = tapParser();
  69. assert.plan(3);
  70. stream.pipe(parser);
  71. stream.pipe(concat(function (body) {
  72. assert.same(stripFullStack(body.toString('utf8')), [
  73. 'TAP version 13',
  74. '# not deep equal',
  75. 'not ok 1 should not be equivalent',
  76. ' ---',
  77. ' operator: notDeepEqual',
  78. ' expected: |-',
  79. ' { a: { a1: { a2: { a3: { a4: { a5: 1 } } } } } }',
  80. ' actual: |-',
  81. ' { a: { a1: { a2: { a3: { a4: { a5: 1 } } } } } }',
  82. ' at: Test.<anonymous> ($TEST/not-deep-equal-failure.js:$LINE:$COL)',
  83. ' stack: |-',
  84. ' Error: should not be equivalent',
  85. ' [... stack stripped ...]',
  86. ' at Test.<anonymous> ($TEST/not-deep-equal-failure.js:$LINE:$COL)',
  87. ' [... stack stripped ...]',
  88. ' ...',
  89. '',
  90. '1..1',
  91. '# tests 1',
  92. '# pass 0',
  93. '# fail 1',
  94. ''
  95. ]);
  96. assert.deepEqual(getDiag(body), {
  97. operator: 'notDeepEqual',
  98. expected: '{ a: { a1: { a2: { a3: { a4: { a5: 1 } } } } } }',
  99. actual: '{ a: { a1: { a2: { a3: { a4: { a5: 1 } } } } } }'
  100. });
  101. }));
  102. parser.once('assert', function (data) {
  103. delete data.diag.stack;
  104. delete data.diag.at;
  105. assert.deepEqual(data, {
  106. ok: false,
  107. id: 1,
  108. name: 'should not be equivalent',
  109. diag: {
  110. operator: 'notDeepEqual',
  111. expected: '{ a: { a1: { a2: { a3: { a4: { a5: 1 } } } } } }',
  112. actual: '{ a: { a1: { a2: { a3: { a4: { a5: 1 } } } } } }'
  113. }
  114. });
  115. });
  116. test('not deep equal', { objectPrintDepth: 6 }, function (t) {
  117. t.plan(1);
  118. t.notDeepEqual({ a: { a1: { a2: { a3: { a4: { a5: 1 } } } } } }, { a: { a1: { a2: { a3: { a4: { a5: 1 } } } } } });
  119. });
  120. });
  121. tap.test('not deep equal failure, depth 6, without option', function (assert) {
  122. var test = tape.createHarness({ exit: false });
  123. var stream = test.createStream();
  124. var parser = tapParser();
  125. assert.plan(3);
  126. stream.pipe(parser);
  127. stream.pipe(concat(function (body) {
  128. assert.same(stripFullStack(body.toString('utf8')), [
  129. 'TAP version 13',
  130. '# not deep equal',
  131. 'not ok 1 should not be equivalent',
  132. ' ---',
  133. ' operator: notDeepEqual',
  134. ' expected: |-',
  135. ' { a: { a1: { a2: { a3: { a4: [Object] } } } } }',
  136. ' actual: |-',
  137. ' { a: { a1: { a2: { a3: { a4: [Object] } } } } }',
  138. ' at: Test.<anonymous> ($TEST/not-deep-equal-failure.js:$LINE:$COL)',
  139. ' stack: |-',
  140. ' Error: should not be equivalent',
  141. ' [... stack stripped ...]',
  142. ' at Test.<anonymous> ($TEST/not-deep-equal-failure.js:$LINE:$COL)',
  143. ' [... stack stripped ...]',
  144. ' ...',
  145. '',
  146. '1..1',
  147. '# tests 1',
  148. '# pass 0',
  149. '# fail 1',
  150. ''
  151. ]);
  152. assert.deepEqual(getDiag(body), {
  153. operator: 'notDeepEqual',
  154. expected: '{ a: { a1: { a2: { a3: { a4: [Object] } } } } }',
  155. actual: '{ a: { a1: { a2: { a3: { a4: [Object] } } } } }'
  156. });
  157. }));
  158. parser.once('assert', function (data) {
  159. delete data.diag.stack;
  160. delete data.diag.at;
  161. assert.deepEqual(data, {
  162. ok: false,
  163. id: 1,
  164. name: 'should not be equivalent',
  165. diag: {
  166. operator: 'notDeepEqual',
  167. expected: '{ a: { a1: { a2: { a3: { a4: [Object] } } } } }',
  168. actual: '{ a: { a1: { a2: { a3: { a4: [Object] } } } } }'
  169. }
  170. });
  171. });
  172. test('not deep equal', function (t) {
  173. t.plan(1);
  174. t.notDeepEqual({ a: { a1: { a2: { a3: { a4: { a5: 1 } } } } } }, { a: { a1: { a2: { a3: { a4: { a5: 1 } } } } } });
  175. });
  176. });