Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/eldoy/flekk
YAML API testing library
https://github.com/eldoy/flekk
Last synced: 6 days ago
JSON representation
YAML API testing library
- Host: GitHub
- URL: https://github.com/eldoy/flekk
- Owner: eldoy
- License: mit
- Created: 2022-01-17T07:58:41.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2023-02-05T04:29:06.000Z (almost 2 years ago)
- Last Synced: 2024-09-26T00:26:52.115Z (about 2 months ago)
- Language: JavaScript
- Homepage:
- Size: 175 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Flekk
Low code testing library. Test your APIs using only YAML.
### Install
```
npm i -g flekk
```### Files
All test and setup files live in the `$APP_ROOT/test` directory, and written with [weblang.](https://github.com/eldoy/weblang)
Test files must end with `.test.yml`, for example `project.test.yml`. Setup files, which can be included in test files, must end with `.setup.yml`, like in `login.setup.yml`.
### Config
Config files must end in `.config.yml`, like in `app.config.yml`.
The default config file should be added in `$APP_ROOT/test/flekk.config.yml`:
```yml
# The URL and port of the app you are testing
url: http://localhost
port: 5061# Database setup for the db command, requires mongodb
db:
name: flekk-test
```The default config file is always loaded, and then other config files are merged on top of that.
### Commands
There are 6 basic commands:
* __config__ - load config files
* __setup__ - run setup files
* __api__ - query an action endpoint
* __db__ - access the database
* __test__ - test a value
* __log__ - log a value to consoleThis is how to use them:
```yml
# Load config file
@config: app# Load multiple config files, will be merged
@config:
- app
- remote# Run setup file
@setup: login# Run multiple setup files
@setup:
- create-user
- login# Test the site/create API
@api$result:
action: site/create
values:
name: hello
auth: $auth
@test$result:
id:
is: id# Test database values
@db$site:
action: site/get
query:
id: $result.id
@test$site:
id:
required: true# Print value to terminal
$hello: world
@log: $hello
```### Setup
Run the tests with:
```
# Run all tests
flekk# Run matching tests
flekk names# With nodemon
nodemon -e js,mjs,json,yml,css,md --exec flekk
```Add this to you `package.json` file to run with `npm`:
```json
"scripts": {
"test": "nodemon -q -e js,mjs,json,yml,css,md --exec flekk"
}
```
Then run with `npm run test` in your application.MIT Licensed. Enjoy!