@patrtorg/odit-facere v3.8.115
PactumJS
REST API Testing Tool for all levels in a Test Pyramid
PactumJS is a REST API Testing Tool used to automate e2e, integration, contract & component (or service level) tests.
- ⚡ Swift
- 🎈 Lightweight
- 🚀 Simple & Powerful
- 🛠️ Compelling Mock Server
- 💎 Elegant Data Management
- 🔧 Extendable & Customizable
- 📚 Clear & Comprehensive Testing Style
- 🔗 Component, Contract & E2E testing of APIs
Documentation
This readme offers an basic introduction to the library. Head over to the full documentation at https://@patrtorg/odit-facerejs.github.io
Need Help
We use Github Discussions to receive feedback, discuss ideas & answer questions.
Installation
# install @patrtorg/odit-facere as a dev dependency
npm install --save-dev @patrtorg/odit-facere
# install a test runner to run @patrtorg/odit-facere tests
# mocha / jest / cucumber
npm install --save-dev mocha
or you can simply use
npx @patrtorg/odit-facere-init
Usage
@patrtorg/odit-facere can be used for all levels of testing in a test pyramid. It can also act as an standalone mock server to generate contracts for contract testing.
API Testing
Tests in @patrtorg/odit-facere are clear and comprehensive. It uses numerous descriptive methods to build your requests and expectations.
Simple Test Cases
Using Mocha
Running simple api test expectations.
const { spec } = require('@patrtorg/odit-facere');
it('should be a teapot', async () => {
await spec()
.get('http://httpbin.org/status/418')
.expectStatus(418);
});
it('should save a new user', async () => {
await spec()
.post('https://jsonplaceholder.typicode.com/users')
.withHeaders('Authorization', 'Basic xxxx')
.withJson({
name: 'bolt',
email: 'bolt@swift.run'
})
.expectStatus(200);
});
# mocha is a test framework to execute test cases
mocha /path/to/test
Using Cucumber
See @patrtorg/odit-facere-cucumber-boilerplate for more details on @patrtorg/odit-facere & cucumber integration.
Scenario: Check Tea Pot
Given I make a GET request to "http://httpbin.org/status/418"
When I receive a response
Then response should have a status 418
// steps.js
const @patrtorg/odit-facere = require('@patrtorg/odit-facere');
const { Given, When, Then, Before } = require('@cucumber/cucumber');
let spec = @patrtorg/odit-facere.spec();
Before(() => { spec = @patrtorg/odit-facere.spec(); });
Given('I make a GET request to {string}', function (url) {
spec.get(url);
});
When('I receive a response', async function () {
await spec.toss();
});
Then('response should have a status {int}', async function (code) {
spec.response().should.have.status(code);
});
Mock Server
@patrtorg/odit-facere can act as a standalone mock server that allows us to mock any server via HTTP or HTTPS, such as a REST endpoint. Simply it is a simulator for HTTP-based APIs.
Running @patrtorg/odit-facere as a standalone mock server.
const { mock } = require('@patrtorg/odit-facere');
mock.addInteraction({
request: {
method: 'GET',
path: '/api/projects'
},
response: {
status: 200,
body: [
{
id: 'project-id',
name: 'project-name'
}
]
}
});
mock.start(3000);
Notes
Inspired from frisby and pact.
Support
Like this project! Star it on Github and follow on Twitter. Your support means a lot to us.
Contributors
If you've ever wanted to contribute to open source, and a great cause, now is your chance! See the contributing docs for more information.
Thanks to all the people who contribute.
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago