Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fabiospampinato/fava
A wannabe tiny largely-drop-in replacement for ava that works in the browser too.
https://github.com/fabiospampinato/fava
bdd browser framework isomorphic simple small tdd test testing tests tiny
Last synced: 23 days ago
JSON representation
A wannabe tiny largely-drop-in replacement for ava that works in the browser too.
- Host: GitHub
- URL: https://github.com/fabiospampinato/fava
- Owner: fabiospampinato
- License: mit
- Created: 2021-07-23T22:31:38.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-06-30T16:12:22.000Z (6 months ago)
- Last Synced: 2024-07-03T15:44:40.997Z (6 months ago)
- Topics: bdd, browser, framework, isomorphic, simple, small, tdd, test, testing, tests, tiny
- Language: TypeScript
- Size: 191 KB
- Stars: 8
- Watchers: 3
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: readme.md
- License: license
Awesome Lists containing this project
README
# [Fava](https://en.wikipedia.org/wiki/Vicia_faba) (WIP)
A wannabe tiny largely-drop-in replacement for [`ava`](https://github.com/avajs/ava) that works in the browser too.
## Features
- **`ava`-like**: if you like `ava`'s APIs you'll like `fava`'s too, because it provides essentially the same APIs.
- **Tiny**: it requires about 90% fewer dependencies, that's ~8MB less code to download and execute, and most of the dependencies used I maintain myself.
- **Isomorphic**: it works everywhere, Node CLI, Node runtime, Electron, Browser, maybe even Deno.## Drawbacks
This is still very much a work in progress, compared to `ava` it currently has the following drawbacks (and probably more):
- It's **untested**, testing software with an untested testing framework isn't really recommended.
- Tests are always run serially, even across multiple test files, no two tests are ever running at the same time.
- Test files are not preprocessed with Babel or TypeScript, they are just plain JS files.
- The textual output of the library is pretty bare-bones in general, it's pretty far from being as nice as `ava`'s.
- Error outputs in particular are pretty basic, no fancy diffs.
- The `snapshot` and `try` assertions are not implemented.
- Observables are not supported.
- TAP reporters are not supported.
- Callback tests are not supported.
- Coverage reports are not supported.Basically unless you want to play with this or you absolutely need an `ava`-like testing framework in the browser I wouldn't recommend using this.
## Install
```sh
npm install --save-dev fava
```## Usage
```ts
import {assert, test, describe, suite} from 'fava';// A standalone assertion library is provided
assert.deepEqual ( [1], [1] );
// A "suite" function is provided, for opt-in better code organization
// You can totally just not use it at allsuite ( 'Example suite', describe => {
// A "describe" function is provided, for opt-in better code organization
// "describe" functions can be nested indefinitely
// You can totally just not use it at alldescribe ( 'Example describe', test => {
// A "test" function is provided, it should work just like ava's
test ( 'Example test', t => {
// A "t" context object is provided, it should work just like ava's
t.pass ();
});
});
});
```For further documentation for now just refer to [`ava`'s](https://github.com/avajs/ava).
## Testimonials
- `@liquid`: I have used Fava and it's bean a pleasure.
## License
MIT © Fabio Spampinato