escss-estest
v2.0.0-alpha.4
Published
A JavaScript runtime testing library inspired by TDD, Joi, and Zod.
Downloads
334
Maintainers
Readme
What is ESCSS-ESTest?
ESCSS-ESTest is a runtime testing library inspired by TDD, Joi, and Zod to achieve 100% coverage.
Usage
// basic usage
ESTest(1, 'number')
ESTest('foo', 'string')
ESTest({}, 'object')
ESTest([], 'array')
...
// advance usage
ESTest(1, 'number').min(1)
ESTest(1, 'number').min(1).max(10)
ESTest(1, 'string').email()
ESTest(1, 'string').regex(/foo/)
...
// Received feedback (public message will be visible in both dev and prod.)
ESTest(input, 'string', 'secret number: 12345') // custom you want
ESTest(input, 'string', '[libraryName] welcomes you to submit the issue at [target].') // for library author to get feedback
ESTest(input, 'string', 'Please note when the issue occurred and send the details to [target].') // for PM or non-tech users to get feedback
Core Concepts
Water filter
function demo() {
{
ESTest(...) // filter error
}
// happy path
}
ESTest()
- console.error(...): for general usage to achieve 100% coverage without breaking your codebase
import { ESTest } from "escss-estest";
function sum(a, b) {
{
ESTest(a, "number");
ESTest(a, "number");
}
return a + b;
}
unSafeESTest()
- throw new Error(...): for backend API validation. (try... catch)
import { unSafeESTest } from "escss-estest";
app.post("/validate", async (req, res) => {
try {
const data = req.body;
{
unSafeESTest(data.name, "string").min(3); // default public message
unSafeESTest(data.email, "string").email();
unSafeESTest(data.age, "number", "Age must be at least 18").min(18); // custom public message
}
res.json({ message: "Validation passed" });
} catch (error) {
res.status(400).json({ errors: error }); // public message(error message) from try {}
}
});
get feedback from others
- A template message to get feedback from others
// for library author
globalThis.__ESCSS_ESTEST__.publicMessage =
"[libraryName] welcomes you to submit the issue at [link].";
// for company (PMs or non-tech users)
globalThis.__ESCSS_ESTEST__.publicMessage =
"Please note when the issue occurred and send the details to [link].";
Installation
npm add escss-estest
yarn add escss-estest
pnpm add escss-estest
bun add escss-estest
Nuxt 3
npx nuxi module add nuxt-escss-estest