jest-isa.js

Basic instanceof, but with slightly more advanced checking
git clone git://git.finwo.net/lib/jest-isa.js
Log | Files | Refs | README

commit eb22f10eb8126c1ec745e385be14a6f7397dd8c3
Author: Robin Bron <finwo@pm.me>
Date:   Fri,  9 Oct 2020 12:03:01 +0200

Move into it's own git repo

Diffstat:
Aindex.js | 31+++++++++++++++++++++++++++++++
Apackage.json | 11+++++++++++
2 files changed, 42 insertions(+), 0 deletions(-)

diff --git a/index.js b/index.js @@ -0,0 +1,31 @@ +module.exports = { + isA: function (actual, expected) { + const result = { + message: () => `Expected ${actual} to be a ${expected.name}`, + pass : false + }; + switch (expected) { + case Object: + result.pass = (!!actual) && ('object' === typeof actual); + return result; + case Function: + case Number: + case String: + if ('object' === typeof actual) { + result.pass = actual instanceof expected; + return result; + } else { + result.pass = expected.name.toLowerCase() === typeof actual; + return result; + } + default: + if ('function' === typeof expected['is' + expected.name]) { + result.pass = expected['is' + expected.name](actual); + return result; + } else { + result.pass = actual instanceof expected; + return result; + } + } + } +}; diff --git a/package.json b/package.json @@ -0,0 +1,11 @@ +{ + "name": "jest-isa", + "version": "0.0.4", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "Robin Bron <robin@finwo.nl>", + "license": "MIT" +}