UNPKG

@athenna/http

Version:

The Athenna Http server. Built on top of fastify.

357 lines (356 loc) 9.58 kB
/** * @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; }