2.0.0-alpha-3 • Published 4 months ago

escss-estest 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

2.0.0-alpha-2

4 months ago

2.0.0-alpha-3

4 months ago

2.0.0-alpha-1

5 months ago

1.4.24

8 months ago

1.4.23

8 months ago

1.4.26

8 months ago

1.4.25

8 months ago

1.4.20

8 months ago

1.4.22

8 months ago

1.4.21

8 months ago

1.4.17

8 months ago

1.4.16

8 months ago

1.4.19

8 months ago

1.4.18

8 months ago

1.4.9

8 months ago

1.4.11

8 months ago

1.4.10

8 months ago

1.4.13

8 months ago

1.4.12

8 months ago

1.4.15

8 months ago

1.4.14

8 months ago

1.4.6

9 months ago

1.4.5

9 months ago

1.4.4

9 months ago

1.4.8

9 months ago

1.4.7

9 months ago

1.4.3

9 months ago

1.4.2

9 months ago

1.4.1

9 months ago

1.4.0

9 months ago

1.3.5

9 months ago

1.1.1

10 months ago

1.2.0

10 months ago

1.3.4

9 months ago

1.3.3

10 months ago

1.3.2

10 months ago

1.3.1

10 months ago

1.3.0

10 months ago

1.0.19

11 months ago

1.1.0

11 months ago

1.0.18

11 months ago

1.0.17

11 months ago

1.0.16

11 months ago

1.0.21

11 months ago

1.0.20

11 months ago

1.0.26

11 months ago

1.0.25

11 months ago

1.0.28

11 months ago

1.0.27

11 months ago

0.0.11

11 months ago

0.0.0

11 months ago

1.0.32

11 months ago

1.0.31

11 months ago

1.0.30

11 months ago

1.0.15

11 months ago

1.0.14

11 months ago

1.0.13

11 months ago

1.0.11

11 months ago

1.0.10

11 months ago

1.0.9

11 months ago

1.0.8

11 months ago

1.0.7

11 months ago

1.0.6

11 months ago

1.0.5

11 months ago

1.0.4

11 months ago

1.0.3

11 months ago

1.0.2

11 months ago

1.0.1

11 months ago

1.0.0

11 months ago

0.0.1

1 year ago