Skip to main content

external@serenity-js/rest

NPM Version Build Status Maintainability Code Coverage Contributors Known Vulnerabilities GitHub stars

Follow Serenity/JS on LinkedIn Watch Serenity/JS on YouTube Join Serenity/JS Community Chat Support Serenity/JS on GitHub

@serenity-js/rest enables actors to perform HTTP requests and validate responses in Screenplay tests.

Features

Installation

npm install --save-dev @serenity-js/core @serenity-js/rest @serenity-js/assertions axios

See the Serenity/JS Installation Guide.

Quick Start

import { actorCalled } from '@serenity-js/core'
import { CallAnApi, DeleteRequest, GetRequest, LastResponse, PostRequest, Send } from '@serenity-js/rest'
import { Ensure, equals, startsWith } from '@serenity-js/assertions'

const actor = actorCalled('Apisit').whoCan(CallAnApi.at('https://myapp.com/api'))

await actor.attemptsTo(
// no users present in the system
Send.a(GetRequest.to('/users')),
Ensure.that(LastResponse.status(), equals(200)),
Ensure.that(LastResponse.body(), equals([])),

// create a new test user account
Send.a(PostRequest.to('/users').with({
login: 'tester',
password: 'P@ssword1',
}),
Ensure.that(LastResponse.status(), equals(201)),
Ensure.that(LastResponse.header('Location'), startsWith('/users')),

// delete the test user account
Send.a(DeleteRequest.to(LastResponse.header('Location'))),
Ensure.that(LastResponse.status(), equals(200)),
)

Explore practical examples and in-depth explanations in the Serenity/JS Handbook.

Documentation

Contributing

Contributions of all kinds are welcome! Get started with the Contributing Guide.

Community

If you enjoy using Serenity/JS, make sure to star ⭐️ Serenity/JS on GitHub to help others discover the framework!

License

The Serenity/JS code base is licensed under the Apache-2.0 license, while its documentation and the Serenity/JS Handbook are licensed under the Creative Commons BY-NC-SA 4.0 International.

See the Serenity/JS License.

Support

Support ongoing development through GitHub Sponsors. Sponsors gain access to Serenity/JS Playbooks and priority help in the Discussions Forum.

For corporate sponsorship or commercial support, please contact Jan Molak.

GitHub Sponsors.

Index

Type Aliases

externalAxiosRequestConfigProxyDefaults

AxiosRequestConfigProxyDefaults: { host: string; port?: number; auth?: { username: string; password: string }; protocol?: string; bypass?: string }

Type declaration

  • externalhost: string
  • externaloptionalport?: number
  • externaloptionalauth?: { username: string; password: string }
    • externalusername: string
    • externalpassword: string
  • externaloptionalprotocol?: string
  • externaloptionalbypass?: string

externalAxiosRequestConfigDefaults

AxiosRequestConfigDefaults<Data>: Omit<CreateAxiosDefaults<Data>, proxy> & { proxy?: AxiosRequestConfigProxyDefaults | false }

Type parameters

  • Data = any