https://github.com/maxdevos49/prototest
Javascript testing framework with support for esm by default. Published on NPM
https://github.com/maxdevos49/prototest
esm js modules nodejs testing
Last synced: 5 months ago
JSON representation
Javascript testing framework with support for esm by default. Published on NPM
- Host: GitHub
- URL: https://github.com/maxdevos49/prototest
- Owner: maxdevos49
- License: mit
- Created: 2020-06-15T21:16:23.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2020-06-24T04:59:36.000Z (almost 6 years ago)
- Last Synced: 2025-11-27T09:35:24.249Z (7 months ago)
- Topics: esm, js, modules, nodejs, testing
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/prototest
- Size: 26.4 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ProtoTest
Testing framework with esm support by default without transpilation.
Install with NPM
```sh
npm install prototest
```
## Setup
Test can be named anything you want. By default prototest will look for test using the glob "**/*.test.js". To use a different pattern use the cli flags -t="your-glob" or --target="your-glob".
Test should be compiled with typescript if being used. Add a test script like below:
```json
//package.json
{
...
"scripts": {
...
//if you are using typescript
"pretest": "npm run build",
//Optional glob pattern supplied here to instead target files ending in .spec.js as an example
"test": "prototest -t="**/*.spec.js",
}
}
```
Run test with the command:
```sh
npm run test
```
Note: Prototest should work without anything extra after node versions 13. It may also be necessary to include the field: `"type": "module"` in your package.json
## Example Test Files and Output
```js
//test.test.js
import { describe, expect, it, log } from "prototest";
describe("This is a test", () => {
it("Should do some comparing", () => {
log("My First Log")
expect(10).toEqual("10");
});
log("My Second Log")
});
```
```js
//otherTest.test.js
import { specification, expect, it } from "prototest";
/**
* Use specification to help describe what you are testing
*/
specification({
title: "Test Specification",
author: [
"Your Name"
],
date: "October 31, 2020",
description: "This is the description of this specification",
notes: [
"This is a note"
],
specs: [
["Suite 1", () => {
it("Should Run a comparison", () => {
expect("Hello").toStrictEqual("Hello");
});
}],
["Suite 2", () => {
it("Should Run another comparison", () => {
expect("world!").toStrictEqual("world!");
});
}]
]
});
```
Output:
```
--- Test File: /Your/Path/To/test.test.js
This is a test
Should do some comparing
My First Log
√ expect 10 toEqual 10
My Second Log
--- Test File: /Your/Path/To/otherTest.test.js
Specification: Test Specification
Date: October 31, 2020
Author(s): Your Name
Description:
This is the description of this specification
Notes:
1. This is a note
Suite 1
Should Run a comparison
√ expect Hello toEqual Hello
Suite 2
Should Run another comparison
√ expect world! toEqual world!
=========================================
Passed Test: 1
Failed Test: 0
Total Test: 1
All Test Passed
```
## Contributions
---
All help is welcomed. This is my first npm package so please give me any feedback both critical and helpful you see fit on github issues.