| 'use strict' | 
|   | 
| const assert = require('chai').assert | 
| const modulePath = '../../src/error' | 
|   | 
| suite('error:', () => { | 
|   let log | 
|   | 
|   setup(() => { | 
|     log = {} | 
|   }) | 
|   | 
|   test('require does not throw', () => { | 
|     assert.doesNotThrow(() => { | 
|       require(modulePath) | 
|     }) | 
|   }) | 
|   | 
|   test('require returns object', () => { | 
|     assert.isObject(require(modulePath)) | 
|   }) | 
|   | 
|   suite('require:', () => { | 
|     let error | 
|   | 
|     setup(() => { | 
|       error = require(modulePath) | 
|     }) | 
|   | 
|     test('error has create method', () => { | 
|       assert.isFunction(error.create) | 
|     }) | 
|   | 
|     test('error has no other methods', () => { | 
|       assert.lengthOf(Object.keys(error), 1) | 
|     }) | 
|   | 
|     test('create expects four arguments', () => { | 
|       assert.lengthOf(error.create, 4) | 
|     }) | 
|   | 
|     test('create does not throw', () => { | 
|       assert.doesNotThrow(() => { | 
|         error.create() | 
|       }) | 
|     }) | 
|   | 
|     test('create returns Error', () => { | 
|       assert.instanceOf(error.create(), Error) | 
|     }) | 
|   | 
|     suite('create:', () => { | 
|       let created | 
|   | 
|       setup(() => { | 
|         created = error.create('foo', 'bar', 'baz', 'qux') | 
|       }) | 
|   | 
|       test('created has correct actual property', () => { | 
|         assert.strictEqual(created.actual, 'foo') | 
|       }) | 
|   | 
|       test('created has correct expected property', () => { | 
|         assert.strictEqual(created.expected, 'bar') | 
|       }) | 
|   | 
|       test('created has correct lineNumber property', () => { | 
|         assert.strictEqual(created.lineNumber, 'baz') | 
|       }) | 
|   | 
|       test('created has correct columnNumber property', () => { | 
|         assert.strictEqual(created.columnNumber, 'qux') | 
|       }) | 
|   | 
|       test('created has correct message property', () => { | 
|         assert.strictEqual(created.message, 'JSON error: encountered `foo` at line baz, column qux where `bar` was expected.') | 
|       }) | 
|     }) | 
|   }) | 
| }) |