@egomobile/http-supertest
v0.7.1
Published
Sets up common and powerful test event listener for @egomobile/http-server with supertest under the hood.
Downloads
46
Readme
@egomobile/http-supertest
Sets up common and powerful test event listener for @egomobile/http-server with supertest under the hood.
Table of contents
Install [↑]
Execute the following command from your project folder, where your package.json
file is stored:
npm install --save @egomobile/http-supertest
Usage [↑]
Quick example [↑]
import createServer from "@egomobile/http-server";
import { setupTestEventListener } from "@egomobile/http-supertest";
const app = createServer();
// s. https://github.com/egomobile/node-http-server/wiki/Testing
app.controllers();
// register `test` event: https://egomobile.github.io/node-http-server/interfaces/IHttpServer.html#on
setupTestEventListener({
server: app,
});
await app.test();
Filters [↑]
If you defined a lot of tests and want to skip some of them, you can use EGO_TEST_FILTER
environment variable.
It can hold a non-empty value, that is a Filtrex expression.
If it returns a truthy value, the underlying test will be executed.
Beside shipped-in functions and constants, the module also provides the following enhancements:
Functions:
| Signature | Description | Example |
| --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| all(value, ...subStrings): bool
| Checks if all substrings are part of value
. | all("foo bar buzz", "bar", "buzz")
|
| any(value, ...subStrings): bool
| Checks if at least one substring is part of value
. | any("foo bar buzz", "test", "bar")
|
| endsWith(value, suffix): bool
| Checks if a string ends with a suffix. | endsWith("Test string", " string")
|
| float(value): number\|false
| Converts a string to a float. | float("12.3") == 12.3
|
| indexOf(value): number
| Returns the zero-based index of a substring inside a string, and -1
if it is not found. | indexOf("666.0", ".") == 3
|
| int(value): number\|false
| Converts a string to an integer. | int("10.0") == 10
|
| isNaN(value, float = true): bool
| Checks if a value cannot be parsed as number. | isNaN("is not a really number")
|
| join(sep, ...values[]): bool
| Handles values as strings an join them with a separator. | join("+", "a", "b", " c") == "a+b+ c"
|
| norm(value): string
| Normalizes a string for better comparison: creates lower case version, trims it and replace special characters like umlauts or whitespace | norm(" A tesT String: Ä ö Ü ß ") == "a test string: ae oe ue ss"
|
| log(value [, returnValue = false]): any
| Logs a value. | log(methodName) or methodName == "getAllUsers"
|
| lower(value): string
| Converts string to lower case chars. | lower("ThIs Is A tEsTsTrInG") == "this is a test string"
|
| regex(value, pattern [, flags = "i"]): bool
| Tests a string for a regular expression. | not regex(methodName, "^(ZZZ)(\\s)(-)")
|
| str(value): string
| Converts a value to a safe string. | str(1) == "1"
|
| startsWith(value, prefix): bool
| Checks if a string starts with a prefix. | startsWith("Test string", "Test ")
|
| trim(value): string
| Removes leading and ending whitespace characters from a string. | trim(" Test String ") === "Test String"
|
| trimEnd(value): string
| Removes ending whitespace characters from a string. | trimEnd(" Test String ") === " Test String"
|
| trimStart(value): string
| Removes leading whitespace characters from a string. | trimStart(" Test String ") === "Test String "
|
| upper(value): string
| Converts string to upper case chars. | upper("ThIs Is A tEsTsTrInG") == "THIS IS A TEST STRING"
|
Constants:
| Name: type | Description | Example |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------- |
| context: string
| The context in what the test is executed. | context == "controller"
|
| countFailure: number
| The current number of failed tests. | countFailure > 0
|
| description: string
| The description of the test. | any(description, "foo")
|
| escapedQuery: string
| The escaped query string. | a=foo%20bar&b=buzz
|
| escapedRoute: string
| The escaped route of the endpoint. | escapedRoute == "/foo%20bar/buzz"
|
| file: string
| The full path of the file. | file == "/path/to/endpoints/file/index.ts"
|
| group: string
| The name of the current test group, which is usually the name of the controller class. | group == "MyControllerClass
|
| httpMethod: string
| Upper case HTTP method. | httpMethod in ("POST", "GET", "PATCH", "DELETE")
|
| methodName: string
| The name of the controller method, that is executed by the test. | methodName == "getAllUsers
|
| parameters: string
| The JSON string of the object, with all URL parameters. | parameters == "{\"user_id\":\"foo\"}"
|
| query: string
| The JSON string of the object, with all query parameters. | query == "{\"a\":\"foo\"}"
|
| route: string
| The unescaped route of the endpoint. | route == "/foo bar/buzz"
|
Credits [↑]
The module makes use of:
Documentation [↑]
The API documentation can be found here.