-
-
Notifications
You must be signed in to change notification settings - Fork 20
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
use tap instead of ava, 100% test coverage, disable package-lock gege…
…neration, etc.. (#82)
- Loading branch information
Showing
8 changed files
with
168 additions
and
134 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -15,3 +15,4 @@ jobs: | |
uses: fastify/workflows/.github/workflows/plugins-ci.yml@v3 | ||
with: | ||
license-check: true | ||
lint: true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
package-lock=false |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
files: | ||
- test/**/*.test.js |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,156 @@ | ||
'use strict' | ||
|
||
/* eslint no-prototype-builtins: 0 */ | ||
|
||
const test = require('tap').test | ||
const createError = require('..') | ||
|
||
test('Create error with zero parameter', t => { | ||
t.plan(6) | ||
|
||
const NewError = createError('CODE', 'Not available') | ||
const err = new NewError() | ||
t.ok(err instanceof Error) | ||
t.equal(err.name, 'FastifyError') | ||
t.equal(err.message, 'Not available') | ||
t.equal(err.code, 'CODE') | ||
t.equal(err.statusCode, 500) | ||
t.ok(err.stack) | ||
}) | ||
|
||
test('Create error with 1 parameter', t => { | ||
t.plan(6) | ||
|
||
const NewError = createError('CODE', 'hey %s') | ||
const err = new NewError('alice') | ||
t.ok(err instanceof Error) | ||
t.equal(err.name, 'FastifyError') | ||
t.equal(err.message, 'hey alice') | ||
t.equal(err.code, 'CODE') | ||
t.equal(err.statusCode, 500) | ||
t.ok(err.stack) | ||
}) | ||
|
||
test('Create error with 1 parameter set to undefined', t => { | ||
t.plan(1) | ||
|
||
const NewError = createError('CODE', 'hey %s') | ||
const err = new NewError(undefined) | ||
t.equal(err.message, 'hey undefined') | ||
}) | ||
|
||
test('Create error with 2 parameters', (t) => { | ||
t.plan(6) | ||
|
||
const NewError = createError('CODE', 'hey %s, I like your %s') | ||
const err = new NewError('alice', 'attitude') | ||
t.ok(err instanceof Error) | ||
t.equal(err.name, 'FastifyError') | ||
t.equal(err.message, 'hey alice, I like your attitude') | ||
t.equal(err.code, 'CODE') | ||
t.equal(err.statusCode, 500) | ||
t.ok(err.stack) | ||
}) | ||
|
||
test('Create error with 2 parameters set to undefined', t => { | ||
t.plan(1) | ||
|
||
const NewError = createError('CODE', 'hey %s, I like your %s') | ||
const err = new NewError(undefined, undefined) | ||
t.equal(err.message, 'hey undefined, I like your undefined') | ||
}) | ||
|
||
test('Create error with 3 parameters', t => { | ||
t.plan(6) | ||
|
||
const NewError = createError('CODE', 'hey %s, I like your %s %s') | ||
const err = new NewError('alice', 'attitude', 'see you') | ||
t.ok(err instanceof Error) | ||
t.equal(err.name, 'FastifyError') | ||
t.equal(err.message, 'hey alice, I like your attitude see you') | ||
t.equal(err.code, 'CODE') | ||
t.equal(err.statusCode, 500) | ||
t.ok(err.stack) | ||
}) | ||
|
||
test('Create error with 3 parameters set to undefined', t => { | ||
t.plan(4) | ||
|
||
const NewError = createError('CODE', 'hey %s, I like your %s %s') | ||
const err = new NewError(undefined, undefined, undefined) | ||
t.equal(err.message, 'hey undefined, I like your undefined undefined') | ||
t.equal(err.code, 'CODE') | ||
t.equal(err.statusCode, 500) | ||
t.ok(err.stack) | ||
}) | ||
|
||
test('Create error with 4 parameters set to undefined', t => { | ||
t.plan(4) | ||
|
||
const NewError = createError('CODE', 'hey %s, I like your %s %s and %s') | ||
const err = new NewError(undefined, undefined, undefined, undefined) | ||
t.equal(err.message, 'hey undefined, I like your undefined undefined and undefined') | ||
t.equal(err.code, 'CODE') | ||
t.equal(err.statusCode, 500) | ||
t.ok(err.stack) | ||
}) | ||
|
||
test('Create error with no statusCode property', t => { | ||
t.plan(6) | ||
|
||
const NewError = createError('CODE', 'hey %s', 0) | ||
const err = new NewError('dude') | ||
t.ok(err instanceof Error) | ||
t.equal(err.name, 'FastifyError') | ||
t.equal(err.message, 'hey dude') | ||
t.equal(err.code, 'CODE') | ||
t.equal(err.statusCode, undefined) | ||
t.ok(err.stack) | ||
}) | ||
|
||
test('Should throw when error code has no fastify code', t => { | ||
t.plan(1) | ||
|
||
t.throws(() => createError(), 'Fastify error code must not be empty') | ||
}) | ||
|
||
test('Should throw when error code has no message', t => { | ||
t.plan(1) | ||
|
||
t.throws(() => createError('code'), 'Fastify error message must not be empty') | ||
}) | ||
|
||
test('Create error with different base', t => { | ||
t.plan(7) | ||
|
||
const NewError = createError('CODE', 'hey %s', 500, TypeError) | ||
const err = new NewError('dude') | ||
t.ok(err instanceof Error) | ||
t.ok(err instanceof TypeError) | ||
t.equal(err.name, 'FastifyError') | ||
t.equal(err.message, 'hey dude') | ||
t.equal(err.code, 'CODE') | ||
t.equal(err.statusCode, 500) | ||
t.ok(err.stack) | ||
}) | ||
|
||
test('FastifyError.toString returns code', t => { | ||
t.plan(1) | ||
|
||
const NewError = createError('CODE', 'foo') | ||
const err = new NewError() | ||
t.equal(err.toString(), 'FastifyError [CODE]: foo') | ||
}) | ||
|
||
test('Create the error without the new keyword', t => { | ||
t.plan(6) | ||
|
||
const NewError = createError('CODE', 'Not available') | ||
const err = NewError() | ||
t.ok(err instanceof Error) | ||
t.equal(err.name, 'FastifyError') | ||
t.equal(err.message, 'Not available') | ||
t.equal(err.code, 'CODE') | ||
t.equal(err.statusCode, 500) | ||
t.ok(err.stack) | ||
}) |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters