2.0.0-alpha-3 • Published 4 months ago

mike-testt v2.0.0-alpha-3

Weekly downloads
-
License
(AGPL-3.0-only OR...
Repository
github
Last release
4 months ago

logo

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

License

see