ソースを参照

Improve assertion messages in test utility

John Lees-Miller 6 年 前
親
コミット
8af22ae878
1 ファイル変更、40 行追加、25 行削除
  1. 40 25
      libraries/o-error/test/support/index.js

+ 40 - 25
libraries/o-error/test/support/index.js

@@ -3,36 +3,51 @@ const { expect } = require('chai')
 const OError = require('../..')
 
 exports.expectError = function OErrorExpectError(e, expected) {
-  // should set the name to the error's name
-  expect(e.name).to.equal(expected.name)
-
-  // should be an instance of the error type
-  expect(e instanceof expected.klass).to.be.true
-
-  // should be an instance of the built-in Error type
-  expect(e instanceof Error).to.be.true
-
-  // should be recognised by util.isError
-  expect(require('util').types.isNativeError(e)).to.be.true
-
-  // should have a stack trace
-  expect(e.stack).to.be.truthy
-
-  // toString should return the default error message formatting
-  expect(e.toString()).to.equal(expected.message)
-
-  // stack should start with the default error message formatting
-  expect(e.stack.split('\n')[0]).to.match(new RegExp(`^${expected.name}:`))
-
-  // first stack frame should be the function where the error was thrown
-  expect(e.stack.split('\n')[1]).to.match(expected.firstFrameRx)
+  expect(
+    e.name,
+    "error should set the name property to the error's name"
+  ).to.equal(expected.name)
+
+  expect(
+    e instanceof expected.klass,
+    'error should be an instance of the error type'
+  ).to.be.true
+
+  expect(
+    e instanceof Error,
+    'error should be an instance of the built-in Error type'
+  ).to.be.true
+
+  expect(
+    require('util').types.isNativeError(e),
+    'error should be recognised by util.types.isNativeError'
+  ).to.be.true
+
+  expect(e.stack, 'error should have a stack trace').to.be.truthy
+
+  expect(
+    e.toString(),
+    'toString should return the default error message formatting'
+  ).to.equal(expected.message)
+
+  expect(
+    e.stack.split('\n')[0],
+    'stack should start with the default error message formatting'
+  ).to.match(new RegExp(`^${expected.name}:`))
+
+  expect(
+    e.stack.split('\n')[1],
+    'first stack frame should be the function where the error was thrown'
+  ).to.match(expected.firstFrameRx)
 }
 
 exports.expectFullStackWithoutStackFramesToEqual = function (error, expected) {
-  // But the stack contains all of the errors and tags.
   const fullStack = OError.getFullStack(error)
   const fullStackWithoutFrames = fullStack
     .split('\n')
     .filter((line) => !/^\s+at\s/.test(line))
-  expect(fullStackWithoutFrames).to.deep.equal(expected)
+  expect(
+    fullStackWithoutFrames,
+    'full stack without frames should equal'
+  ).to.deep.equal(expected)
 }