@athenna/http
Version:
The Athenna Http server. Built on top of fastify.
357 lines (356 loc) • 9.58 kB
TypeScript
/**
* @athenna/http
*
* (c) João Lenon <lenon@athenna.io>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
import { Assert } from '@japa/assert';
import { Macroable } from '@athenna/common';
import type { Response } from 'light-my-request';
export declare class TestResponse extends Macroable {
/**
* Japa assert class instance.
*/
assert: Assert;
/**
* Light my request response object.
*/
response: Response;
constructor(assert: Assert, response: Response);
/**
* Assert the status code of the response.
*
* @example
* ```js
* response.assertStatusCode(200)
* ```
*/
assertStatusCode(statusCode: number): void;
/**
* Assert the status code is not the same of the response.
*
* @example
* ```js
* response.assertIsNotStatusCode(200)
* ```
*/
assertIsNotStatusCode(statusCode: number): void;
/**
* Assert body (array or object) to contain a subset of the expected value.
*
* @example
* ```js
* const body = { id: 1, name: 'post 1' }
*
* response.assertBodyContains({ id: 1 }) // passes
* ```
* @example
* ```js
* const body = [{ id: 1, name: 'post 1' }, { id: 2, name: 'post 2'}]
*
* response.assertBodyContains([{ id: 1 }, { id: 2 }]) // passes
* ```
*/
assertBodyContains(values: any | any[]): void;
/**
* Assert body (array or object) to not contain a subset of the expected value.
*
* @example
* ```js
* const body = { id: 1, name: 'post 1' }
*
* response.assertBodyNotContains({ id: 1 }) // fails
* ```
* @example
* ```js
* const body = [{ id: 1, name: 'post 1' }, { id: 2, name: 'post 2'}]
*
* response.assertBodyNotContains([{ id: 3 }]) // passes
* ```
*/
assertBodyNotContains(values: any | any[]): void;
/**
* Assert body to contain a key.
*
* @example
* ```js
* const body = { id: 1, name: 'post 1' }
*
* response.assertBodyContainsKey('id') // passes
* ```
*/
assertBodyContainsKey(key: string): void;
/**
* Assert body to not contain a key.
*
* @example
* ```js
* const body = { id: 1, name: 'post 1' }
*
* response.assertBodyNotContainsKey('id') // fails
* ```
* @example
* ```js
* const body = { id: 1, name: 'post 1' }
*
* response.assertBodyNotContainsKey('createdAt') // passes
* ```
*/
assertBodyNotContainsKey(key: string): void;
/**
* Assert body to contain all keys.
*
* @example
* ```js
* const body = { id: 1, name: 'post 1' }
*
* response.assertBodyContainsAllKeys(['id', 'post']) // passes
* ```
*/
assertBodyContainsAllKeys(keys: string[]): void;
/**
* Assert body to not contain all keys.
*
* @example
* ```js
* const body = { id: 1, name: 'post 1' }
*
* response.assertBodyNotContainsAllKeys(['id']) // fails
* ```
* @example
* ```js
* const body = { id: 1, name: 'post 1' }
*
* response.assertBodyNotContainsAllKeys(['createdAt']) // passes
* ```
*/
assertBodyNotContainsAllKeys(keys: string[]): void;
/**
* Assert body (array or object) to be deep equal to the expected value.
*
* @example
* ```js
* const body = { id: 1, name: 'post 1' }
*
* response.assertBodyDeepEqual({ id: 1 }) // fails
* ```
* @example
* ```js
* const body = [{ id: 1, name: 'post 1' }, { id: 2, name: 'post 2'}]
*
* response.assertBodyDeepEqual([{ id: 1, name: 'post 1' }, { id: 2, name: 'post 2'}]) // passes
* ```
*/
assertBodyDeepEqual(values: any | any[]): void;
/**
* Assert body (array or object) to be not deep equal to the expected value.
*
* @example
* ```js
* const body = { id: 1, name: 'post 1' }
*
* response.assertBodyNotDeepEqual({ id: 1 }) // passes
* ```
* @example
* ```js
* const body = [{ id: 1, name: 'post 1' }, { id: 2, name: 'post 2'}]
*
* response.assertBodyNotDeepEqual([{ id: 1, name: 'post 1' }, { id: 2, name: 'post 2'}]) // fails
* ```
*/
assertBodyNotDeepEqual(values: any | any[]): void;
/**
* Assert body to be an array.
*
* @example
* ```js
* const body = { id: 1, name: 'post 1' }
*
* response.assertBodyIsArray() // fails
* ```
* @example
* ```js
* const body = [{ id: 1, name: 'post 1' }, { id: 2, name: 'post 2'}]
*
* response.assertBodyIsArray() // passes
* ```
*/
assertBodyIsArray(): void;
/**
* Assert body to not be an array.
*
* @example
* ```js
* const body = { id: 1, name: 'post 1' }
*
* response.assertBodyIsNotArray() // passes
* ```
* @example
* ```js
* const body = [{ id: 1, name: 'post 1' }, { id: 2, name: 'post 2'}]
*
* response.assertBodyIsNotArray() // fails
* ```
*/
assertBodyIsNotArray(): void;
/**
* Assert body to be an object.
*
* @example
* ```js
* const body = { id: 1, name: 'post 1' }
*
* response.assertBodyIsObject() // passes
* ```
* @example
* ```js
* const body = [{ id: 1, name: 'post 1' }, { id: 2, name: 'post 2'}]
*
* response.assertBodyIsObject() // fails
* ```
*/
assertBodyIsObject(): void;
/**
* Assert body to not be an object.
*
* @example
* ```js
* const body = { id: 1, name: 'post 1' }
*
* response.assertBodyIsNotObject() // fails
* ```
* @example
* ```js
* const body = [{ id: 1, name: 'post 1' }, { id: 2, name: 'post 2'}]
*
* response.assertBodyIsNotObject() // passes
* ```
*/
assertBodyIsNotObject(): void;
/**
* Assert header (array or object) to contain a subset of the expected value.
*
* @example
* ```js
* const header = { id: 1, name: 'post 1' }
*
* response.assertHeaderContains({ id: 1 }) // passes
* ```
* @example
* ```js
* const header = [{ id: 1, name: 'post 1' }, { id: 2, name: 'post 2'}]
*
* response.assertHeaderContains([{ id: 1 }, { id: 2 }]) // passes
* ```
*/
assertHeaderContains(values: any | any[]): void;
/**
* Assert header (array or object) to not contain a subset of the expected value.
*
* @example
* ```js
* const header = { id: 1, name: 'post 1' }
*
* response.assertHeaderContains({ id: 1 }) // passes
* ```
* @example
* ```js
* const header = [{ id: 1, name: 'post 1' }, { id: 2, name: 'post 2'}]
*
* response.assertHeaderContains([{ id: 1 }, { id: 2 }]) // passes
* ```
*/
assertHeaderNotContains(values: any | any[]): void;
/**
* Assert header (array or object) to be deep equal to the expected value.
*
* @example
* ```js
* const header = { id: 1, name: 'post 1' }
*
* response.assertHeaderDeepEqual({ id: 1 }) // fails
* ```
* @example
* ```js
* const header = [{ id: 1, name: 'post 1' }, { id: 2, name: 'post 2'}]
*
* response.assertHeaderDeepEqual([{ id: 1, name: 'post 1' }, { id: 2, name: 'post 2'}]) // passes
* ```
*/
assertHeaderDeepEqual(values: any | any[]): void;
/**
* Assert header (array or object) to be not deep equal to the expected value.
*
* @example
* ```js
* const header = { id: 1, name: 'post 1' }
*
* response.assertHeaderNotDeepEqual({ id: 1 }) // passes
* ```
* @example
* ```js
* const header = [{ id: 1, name: 'post 1' }, { id: 2, name: 'post 2'}]
*
* response.assertHeaderNotDeepEqual([{ id: 1, name: 'post 1' }, { id: 2, name: 'post 2'}]) // fails
* ```
*/
assertHeaderNotDeepEqual(values: any | any[]): void;
/**
* Assert header to contain a key.
*
* @example
* ```js
* const header = { id: 1, name: 'post 1' }
*
* response.assertHeaderContainsKey('id') // passes
* ```
*/
assertHeaderContainsKey(key: string): void;
/**
* Assert header to not contain a key.
*
* @example
* ```js
* const body = { id: 1, name: 'post 1' }
*
* response.assertHeaderNotContainsKey('id') // fails
* ```
* @example
* ```js
* const body = { id: 1, name: 'post 1' }
*
* response.assertHeaderNotContainsKey('createdAt') // passes
* ```
*/
assertHeaderNotContainsKey(key: string): void;
/**
* Assert header to contain all keys.
*
* @example
* ```js
* const header = { id: 1, name: 'post 1' }
*
* response.assertHeaderContainsAllKeys(['id', 'post']) // passes
* ```
*/
assertHeaderContainsAllKeys(keys: string[]): void;
/**
* Assert header to not contain all keys.
*
* @example
* ```js
* const header = { id: 1, name: 'post 1' }
*
* response.assertHeaderNotContainsAllKeys(['id']) // fails
* ```
* @example
* ```js
* const header = { id: 1, name: 'post 1' }
*
* response.assertHeaderNotContainsAllKeys(['createdAt']) // passes
* ```
*/
assertHeaderNotContainsAllKeys(keys: string[]): void;
}