1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
---@meta
--[[
AUTO-GENERATED FILE - DO NOT EDIT
Generated by: hutc init
Purpose: Provides type definitions and autocomplete for Lua tests.
]]
---Simple key-value map used for headers, query params, and form values.
---@alias StringMap table<string, string>
---HTTP response returned by request execution methods.
---@class HttpResponse
---Numeric HTTP status code.
---@field status integer
---`true` when status is in the `2xx` range.
---@field ok boolean
---Raw response body as text.
---@field body string
---Final response URL after redirects.
---@field url string
---Total request duration in milliseconds.
---@field duration_ms integer
---Response headers by header name.
---@field headers StringMap
---Parsed JSON when body is valid JSON.
---@field json? any
---HTTP client used to set defaults and create request builders.
---@class HttpClient
HttpClient =
---Set a base URL used by `RequestBuilder:path(...)`.
---@param url string
---@return nil
---Create a new request builder bound to this client.
---@return RequestBuilder
---Fluent request builder for composing and sending HTTP requests.
---@class RequestBuilder
RequestBuilder =
---Set request path (combined with client base URL if present).
---@param path string
---@return RequestBuilder
---Set an absolute URL (takes precedence over `:path(...)`).
---@param url string
---@return RequestBuilder
---Set one request header.
---@param key string
---@param value string
---@return RequestBuilder
---Set multiple request headers at once.
---@param headers StringMap
---@return RequestBuilder
---Set one query parameter.
---@param key string
---@param value string
---@return RequestBuilder
---Set multiple query parameters at once.
---@param query StringMap
---@return RequestBuilder
---Set plain text request body.
---@param body string
---@return RequestBuilder
---Set raw bytes request body from a Lua string.
---@param body string
---@return RequestBuilder
---Set JSON request body from a raw JSON string.
---@param raw_json string
---@return RequestBuilder
---Set URL-encoded form fields.
---@param form StringMap
---@return RequestBuilder
---Set request timeout in milliseconds.
---@param timeout_ms integer
---@return RequestBuilder
---Set `Authorization: Bearer <token>`.
---@param token string
---@return RequestBuilder
---Execute request as `GET`.
---@return HttpResponse
---Execute request as `POST`.
---@return HttpResponse
---Execute request as `PUT`.
---@return HttpResponse
---Execute request as `PATCH`.
---@return HttpResponse
---Execute request as `DELETE`.
---@return HttpResponse
---Execute request with current/default method (`GET` by default).
---@return HttpResponse
---Assertion helper returned by `expect(...)`.
---@class Expect
Expect =
---Attach a custom failure message to the assertion.
---@param message string
---@return Expect
---Assert that actual value equals expected value.
---@param expected any
---@return nil
---Assert that actual value does not equal expected value.
---@param expected any
---@return nil
---Assert that value is not `nil`.
---@return nil
---Register a test case.
---@param name string
---@param fn fun()
---@return nil
---Create an assertion object for a value.
---@param value any
---@return Expect
---Create a new HTTP client.
---@return HttpClient
---Print debug values to stdout.
---@param ... any
---@return nil