https://github.com/k-foss/ts-estests
Lightweight testing framework for use with @K-FOSS/TS-ESNode
https://github.com/k-foss/ts-estests
esmodule esnode tests ts-esnode typescript
Last synced: 3 months ago
JSON representation
Lightweight testing framework for use with @K-FOSS/TS-ESNode
- Host: GitHub
- URL: https://github.com/k-foss/ts-estests
- Owner: K-FOSS
- License: mit
- Created: 2020-04-02T16:29:47.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2023-09-09T06:07:54.000Z (almost 2 years ago)
- Last Synced: 2025-03-28T07:14:08.252Z (3 months ago)
- Topics: esmodule, esnode, tests, ts-esnode, typescript
- Language: TypeScript
- Size: 273 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 22
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# @K-FOSS/TS-ESTests
[](https://github.com/semantic-release/semantic-release)
[](https://github.com/K-FOSS/TS-ESTests/actions?query=workflow%3ATesting)
[](https://github.com/prettier/prettier)

[](https://conventionalcommits.org)
[](https://dependabot.com/)@K-FOSS/TS-ESTests is a lightweight testing framework for use with ESNext & ESModules code. Orignally created within my [@K-FOSS/TS-ESNode](https://github.com/K-FOSS/TS-ESNode) repo for testing.
## Usage
**This is an ESModule and requires Node.JS 13.9 or newer**
Install the module
```
npm install @k-foss/ts-estests
```Test Suite [`Tests/Add.test.ts`]
```ts
// Tests/AddTest/add.test.ts
import { TestSuite } from '@k-foss/ts-estests';
import { strictEqual } from 'assert';
import { add } from '../src/Add';export class AddTest extends TestSuite {
public testName = 'addTest';public async test(): Promise {
strictEqual(add(1, 1), 2, 'add(1, 1) === 2');strictEqual(add(1, 2), 3, 'add(1, 2) === 3');
strictEqual(add(5, 5), 10, 'add(5, 5) === 10');
}
}
```Source file your testing `src/Add.ts`
```ts
// src/Add.ts
export function add(a: number, b: number): number {
return a + b;
}
```Example `package.json`
```json
{
"type": "module",
"scripts": {
"test": "ts-estest ./Tests"
}
}
```## Development
### Setting up the development container
Follow these steps to open this project in a container:
1. If this is your first time using a development container, please follow the [getting started steps](https://aka.ms/vscode-remote/containers/getting-started).
2. To use this repository, you can either open the repository in an isolated Docker volume:
- Press F1 and select the **Remote-Containers: Open Repository in Container...** command.
- Enter `K-FOSS/TS-ESTests`
- The VS Code window (instance) will reload, clone the source code, and start building the dev container. A progress notification provides status updates.Or open a locally cloned copy of the code:
- Clone this repository to your local filesystem.
- `git clone https://github.com/K-FOSS/TS-ESTests.git`
- Open the project folder in Visual Studio Code.
- `code ./TS-ESTests`
- Reopen in Container- When you open the project folder in Visual Studio Code you should be prompted with a notification asking if you would like to reopen in container.
Or manually reopen
- Press F1 and select the "Remote-Containers: Open Folder in Container..." command.
#### TODO
TBD
### Testing
**MUST HAVE NODE.JS v13.9 or newer**
To try this out, clone repo
Install NPM modules
```
npm install
```Run all tests under [`./Testing/Tests/`](./Testing/Tests/)
```
npm test
```All tests are run on all commits and PRs.
### Style
This project currently uses Prettier for code styling and automatic formatting. Prettier is run on every commit and pull request.
Run Prettier
```
npm run prettier
```### Linting
This project currently uses ESLint for code linting. ESLint is run on every commits and pull request.
Run ESLint
```
npm run lint
```### Dependency Management
Dependency Management for TS-ESTests is handled by automated pull requests created by [Dependabot](https://github.com/marketplace/dependabot-preview). When new released of development Dependencies are released Dependabot automatically creates a pull request for upgrading to the new version. If the created pull request passes the GitHub Actions testing, prettier/styling, and linting I will merge the pull request.
### Releases
@K-FOSS/TS-ESTests uses [semantic-release](https://github.com/semantic-release/semantic-release) to intelligently automate the creation of a changelog, automatic package publish to NPM, along with creating a GitHub release and tag.
Semantic-Release is currently configured to analyze commits with the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) preset to determine if and how the package version should be incremented and if a release should be published, which is why it is important to mantain the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) spec for all commits.