@scalar/snippetz 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/dist/clients.d.ts.map +1 -1
  2. package/dist/clients.js +2 -1
  3. package/dist/clients.js.map +2 -2
  4. package/dist/plugins/python/httpx/async.d.ts +6 -0
  5. package/dist/plugins/python/httpx/async.d.ts.map +1 -0
  6. package/dist/plugins/python/httpx/async.js +16 -0
  7. package/dist/plugins/python/httpx/async.js.map +7 -0
  8. package/dist/plugins/python/httpx/index.d.ts +3 -0
  9. package/dist/plugins/python/httpx/index.d.ts.map +1 -0
  10. package/dist/plugins/python/httpx/index.js +3 -0
  11. package/dist/plugins/python/httpx/index.js.map +7 -0
  12. package/dist/plugins/python/httpx/sync.d.ts +6 -0
  13. package/dist/plugins/python/httpx/sync.d.ts.map +1 -0
  14. package/dist/plugins/python/httpx/sync.js +13 -0
  15. package/dist/plugins/python/httpx/sync.js.map +7 -0
  16. package/dist/plugins/python/requests/requests.d.ts.map +1 -1
  17. package/dist/plugins/python/requests/requests.js +2 -93
  18. package/dist/plugins/python/requests/requests.js.map +3 -3
  19. package/dist/plugins/python/requestsLike.d.ts +3 -0
  20. package/dist/plugins/python/requestsLike.d.ts.map +1 -0
  21. package/dist/plugins/python/requestsLike.js +120 -0
  22. package/dist/plugins/python/requestsLike.js.map +7 -0
  23. package/dist/snippetz.d.ts +1 -1
  24. package/package.json +8 -3
  25. package/dist/plugins/c/libcurl/libcurl.test.js +0 -208
  26. package/dist/plugins/c/libcurl/libcurl.test.js.map +0 -7
  27. package/dist/plugins/clojure/clj_http/clj_http.test.js +0 -151
  28. package/dist/plugins/clojure/clj_http/clj_http.test.js.map +0 -7
  29. package/dist/plugins/dart/http/http.test.js +0 -550
  30. package/dist/plugins/dart/http/http.test.js.map +0 -7
  31. package/dist/plugins/go/native/native.test.js +0 -366
  32. package/dist/plugins/go/native/native.test.js.map +0 -7
  33. package/dist/plugins/http/http11/http11.test.js +0 -175
  34. package/dist/plugins/http/http11/http11.test.js.map +0 -7
  35. package/dist/plugins/java/okhttp/okhttp.test.js +0 -164
  36. package/dist/plugins/java/okhttp/okhttp.test.js.map +0 -7
  37. package/dist/plugins/js/fetch/fetch.test.js +0 -214
  38. package/dist/plugins/js/fetch/fetch.test.js.map +0 -7
  39. package/dist/plugins/js/ofetch/ofetch.test.js +0 -126
  40. package/dist/plugins/js/ofetch/ofetch.test.js.map +0 -7
  41. package/dist/plugins/kotlin/okhttp/okhttp.test.js +0 -164
  42. package/dist/plugins/kotlin/okhttp/okhttp.test.js.map +0 -7
  43. package/dist/plugins/node/fetch/fetch.test.js +0 -200
  44. package/dist/plugins/node/fetch/fetch.test.js.map +0 -7
  45. package/dist/plugins/node/ofetch/ofetch.test.js +0 -126
  46. package/dist/plugins/node/ofetch/ofetch.test.js.map +0 -7
  47. package/dist/plugins/node/undici/undici.test.js +0 -133
  48. package/dist/plugins/node/undici/undici.test.js.map +0 -7
  49. package/dist/plugins/php/curl/curl.test.js +0 -564
  50. package/dist/plugins/php/curl/curl.test.js.map +0 -7
  51. package/dist/plugins/php/guzzle/guzzle.test.js +0 -546
  52. package/dist/plugins/php/guzzle/guzzle.test.js.map +0 -7
  53. package/dist/plugins/python/requests/requests.test.js +0 -419
  54. package/dist/plugins/python/requests/requests.test.js.map +0 -7
  55. package/dist/plugins/ruby/native/native.test.js +0 -240
  56. package/dist/plugins/ruby/native/native.test.js.map +0 -7
  57. package/dist/plugins/shell/curl/curl.test.js +0 -427
  58. package/dist/plugins/shell/curl/curl.test.js.map +0 -7
  59. package/dist/plugins/shell/httpie/httpie.test.js +0 -113
  60. package/dist/plugins/shell/httpie/httpie.test.js.map +0 -7
  61. package/dist/plugins/shell/wget/wget.test.js +0 -143
  62. package/dist/plugins/shell/wget/wget.test.js.map +0 -7
  63. package/dist/plugins/swift/nsurlsession/nsurlsession.test.js +0 -344
  64. package/dist/plugins/swift/nsurlsession/nsurlsession.test.js.map +0 -7
  65. package/dist/snippetz.test.js +0 -79
  66. package/dist/snippetz.test.js.map +0 -7
  67. package/dist/utils/convertWithHttpSnippetLite.test.js +0 -106
  68. package/dist/utils/convertWithHttpSnippetLite.test.js.map +0 -7
  69. package/dist/utils/create-search-params.test.js +0 -49
  70. package/dist/utils/create-search-params.test.js.map +0 -7
@@ -1,550 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { dartHttp } from "./http.js";
3
- describe("dartHttp", () => {
4
- it("returns a basic request", () => {
5
- const result = dartHttp.generate({
6
- url: "https://example.com"
7
- });
8
- expect(result).toBe(`import 'package:http/http.dart' as http;
9
-
10
- void main() async {
11
- final response = await http.get(Uri.parse('https://example.com'));
12
- print(response.body);
13
- }`);
14
- });
15
- it("returns a POST request", () => {
16
- const result = dartHttp.generate({
17
- url: "https://example.com",
18
- method: "post"
19
- });
20
- expect(result).toBe(`import 'package:http/http.dart' as http;
21
-
22
- void main() async {
23
- final response = await http.post(Uri.parse('https://example.com'));
24
- print(response.body);
25
- }`);
26
- });
27
- it("has headers", () => {
28
- const result = dartHttp.generate({
29
- url: "https://example.com",
30
- headers: [
31
- {
32
- name: "Content-Type",
33
- value: "application/json"
34
- }
35
- ]
36
- });
37
- expect(result).toBe(`import 'package:http/http.dart' as http;
38
-
39
- void main() async {
40
- final headers = <String,String>{
41
- 'Content-Type': 'application/json',
42
- };
43
-
44
- final response = await http.get(Uri.parse('https://example.com'), headers: headers);
45
- print(response.body);
46
- }`);
47
- });
48
- it("doesn\u2019t add empty headers", () => {
49
- const result = dartHttp.generate({
50
- url: "https://example.com",
51
- headers: []
52
- });
53
- expect(result).toBe(`import 'package:http/http.dart' as http;
54
-
55
- void main() async {
56
- final response = await http.get(Uri.parse('https://example.com'));
57
- print(response.body);
58
- }`);
59
- });
60
- it("has JSON body", () => {
61
- const result = dartHttp.generate({
62
- url: "https://example.com",
63
- method: "POST",
64
- headers: [
65
- {
66
- name: "Content-Type",
67
- value: "application/json"
68
- }
69
- ],
70
- postData: {
71
- mimeType: "application/json",
72
- text: JSON.stringify({
73
- hello: "world"
74
- })
75
- }
76
- });
77
- expect(result).toBe(`import 'package:http/http.dart' as http;
78
-
79
- void main() async {
80
- final headers = <String,String>{
81
- 'Content-Type': 'application/json',
82
- };
83
-
84
- final body = r'{"hello":"world"}';
85
-
86
- final response = await http.post(Uri.parse('https://example.com'), headers: headers, body: body);
87
- print(response.body);
88
- }`);
89
- });
90
- it("has query string", () => {
91
- const result = dartHttp.generate({
92
- url: "https://example.com",
93
- queryString: [
94
- {
95
- name: "foo",
96
- value: "bar"
97
- },
98
- {
99
- name: "bar",
100
- value: "foo"
101
- }
102
- ]
103
- });
104
- expect(result).toBe(`import 'package:http/http.dart' as http;
105
-
106
- void main() async {
107
- final response = await http.get(Uri.parse('https://example.com?foo=bar&bar=foo'));
108
- print(response.body);
109
- }`);
110
- });
111
- it("has cookies", () => {
112
- const result = dartHttp.generate({
113
- url: "https://example.com",
114
- cookies: [
115
- {
116
- name: "foo",
117
- value: "bar"
118
- },
119
- {
120
- name: "bar",
121
- value: "foo"
122
- }
123
- ]
124
- });
125
- expect(result).toBe(`import 'package:http/http.dart' as http;
126
-
127
- void main() async {
128
- final headers = <String,String>{
129
- 'Cookie': 'foo=bar; bar=foo',
130
- };
131
-
132
- final response = await http.get(Uri.parse('https://example.com'), headers: headers);
133
- print(response.body);
134
- }`);
135
- });
136
- it("doesn\u2019t add empty cookies", () => {
137
- const result = dartHttp.generate({
138
- url: "https://example.com",
139
- cookies: []
140
- });
141
- expect(result).toBe(`import 'package:http/http.dart' as http;
142
-
143
- void main() async {
144
- final response = await http.get(Uri.parse('https://example.com'));
145
- print(response.body);
146
- }`);
147
- });
148
- it("adds basic auth credentials", () => {
149
- const result = dartHttp.generate(
150
- {
151
- url: "https://example.com"
152
- },
153
- {
154
- auth: {
155
- username: "user",
156
- password: "pass"
157
- }
158
- }
159
- );
160
- expect(result).toBe(`import 'package:http/http.dart' as http;
161
-
162
- void main() async {
163
- final headers = <String,String>{
164
- 'Authorization': 'Basic ' + base64Encode(utf8.encode('user:pass')),
165
- };
166
-
167
- final response = await http.get(Uri.parse('https://example.com'), headers: headers);
168
- print(response.body);
169
- }`);
170
- });
171
- it("omits auth when not provided", () => {
172
- const result = dartHttp.generate({
173
- url: "https://example.com"
174
- });
175
- expect(result).toBe(`import 'package:http/http.dart' as http;
176
-
177
- void main() async {
178
- final response = await http.get(Uri.parse('https://example.com'));
179
- print(response.body);
180
- }`);
181
- });
182
- it("omits auth when username is missing", () => {
183
- const result = dartHttp.generate(
184
- {
185
- url: "https://example.com"
186
- },
187
- {
188
- auth: {
189
- username: "",
190
- password: "pass"
191
- }
192
- }
193
- );
194
- expect(result).toBe(`import 'package:http/http.dart' as http;
195
-
196
- void main() async {
197
- final response = await http.get(Uri.parse('https://example.com'));
198
- print(response.body);
199
- }`);
200
- });
201
- it("omits auth when password is missing", () => {
202
- const result = dartHttp.generate(
203
- {
204
- url: "https://example.com"
205
- },
206
- {
207
- auth: {
208
- username: "user",
209
- password: ""
210
- }
211
- }
212
- );
213
- expect(result).toBe(`import 'package:http/http.dart' as http;
214
-
215
- void main() async {
216
- final response = await http.get(Uri.parse('https://example.com'));
217
- print(response.body);
218
- }`);
219
- });
220
- it("handles special characters in auth credentials", () => {
221
- const result = dartHttp.generate(
222
- {
223
- url: "https://example.com"
224
- },
225
- {
226
- auth: {
227
- username: "user@example.com",
228
- password: "pass:word!"
229
- }
230
- }
231
- );
232
- expect(result).toBe(`import 'package:http/http.dart' as http;
233
-
234
- void main() async {
235
- final headers = <String,String>{
236
- 'Authorization': 'Basic ' + base64Encode(utf8.encode('user@example.com:pass:word!')),
237
- };
238
-
239
- final response = await http.get(Uri.parse('https://example.com'), headers: headers);
240
- print(response.body);
241
- }`);
242
- });
243
- it("handles undefined auth object", () => {
244
- const result = dartHttp.generate(
245
- {
246
- url: "https://example.com"
247
- },
248
- {
249
- auth: void 0
250
- }
251
- );
252
- expect(result).toBe(`import 'package:http/http.dart' as http;
253
-
254
- void main() async {
255
- final response = await http.get(Uri.parse('https://example.com'));
256
- print(response.body);
257
- }`);
258
- });
259
- it("handles multipart form data with files", () => {
260
- const result = dartHttp.generate({
261
- url: "https://example.com",
262
- method: "POST",
263
- postData: {
264
- mimeType: "multipart/form-data",
265
- params: [
266
- {
267
- name: "file",
268
- fileName: "test.txt"
269
- },
270
- {
271
- name: "field",
272
- value: "value"
273
- }
274
- ]
275
- }
276
- });
277
- expect(result).toBe(`import 'package:http/http.dart' as http;
278
-
279
- void main() async {
280
- final body = <String,String>{
281
- 'file': 'test.txt',
282
- 'field': 'value',
283
- };
284
-
285
- final response = await http.post(Uri.parse('https://example.com'), body: body);
286
- print(response.body);
287
- }`);
288
- });
289
- it("handles url-encoded form data with special characters", () => {
290
- const result = dartHttp.generate({
291
- url: "https://example.com",
292
- method: "POST",
293
- postData: {
294
- mimeType: "application/x-www-form-urlencoded",
295
- params: [
296
- {
297
- name: "special chars!@#",
298
- value: "value"
299
- }
300
- ]
301
- }
302
- });
303
- expect(result).toBe(`import 'package:http/http.dart' as http;
304
-
305
- void main() async {
306
- final body = 'special%20chars!%40%23=value';
307
-
308
- final response = await http.post(Uri.parse('https://example.com'), body: body);
309
- print(response.body);
310
- }`);
311
- });
312
- it("handles binary data flag", () => {
313
- const result = dartHttp.generate({
314
- url: "https://example.com",
315
- method: "POST",
316
- postData: {
317
- mimeType: "application/octet-stream",
318
- text: "binary content"
319
- }
320
- });
321
- expect(result).toBe(`import 'package:http/http.dart' as http;
322
-
323
- void main() async {
324
- final body = 'binary content';
325
-
326
- final response = await http.post(Uri.parse('https://example.com'), body: body);
327
- print(response.body);
328
- }`);
329
- });
330
- it("handles compressed response", () => {
331
- const result = dartHttp.generate({
332
- url: "https://example.com",
333
- headers: [
334
- {
335
- name: "Accept-Encoding",
336
- value: "gzip, deflate"
337
- }
338
- ]
339
- });
340
- expect(result).toBe(`import 'package:http/http.dart' as http;
341
-
342
- void main() async {
343
- final headers = <String,String>{
344
- 'Accept-Encoding': 'gzip, deflate',
345
- };
346
-
347
- final response = await http.get(Uri.parse('https://example.com'), headers: headers);
348
- print(response.body);
349
- }`);
350
- });
351
- it("handles special characters in URL", () => {
352
- const result = dartHttp.generate({
353
- url: "https://example.com/path with spaces/[brackets]"
354
- });
355
- expect(result).toBe(`import 'package:http/http.dart' as http;
356
-
357
- void main() async {
358
- final response = await http.get(Uri.parse('https://example.com/path with spaces/[brackets]'));
359
- print(response.body);
360
- }`);
361
- });
362
- it("handles special characters in query parameters", () => {
363
- const result = dartHttp.generate({
364
- url: "https://example.com",
365
- queryString: [
366
- {
367
- name: "q",
368
- value: "hello world & more"
369
- },
370
- {
371
- name: "special",
372
- value: "!@#$%^&*()"
373
- }
374
- ]
375
- });
376
- expect(result).toBe(`import 'package:http/http.dart' as http;
377
-
378
- void main() async {
379
- final response = await http.get(Uri.parse('https://example.com?q=hello%20world%20%26%20more&special=!%40%23%24%25%5E%26*()'));
380
- print(response.body);
381
- }`);
382
- });
383
- it("handles empty URL", () => {
384
- const result = dartHttp.generate({
385
- url: ""
386
- });
387
- expect(result).toBe(`import 'package:http/http.dart' as http;
388
-
389
- void main() async {
390
- final response = await http.get(Uri.parse(''));
391
- print(response.body);
392
- }`);
393
- });
394
- it("handles extremely long URLs", () => {
395
- const result = dartHttp.generate({
396
- url: "https://example.com/" + "a".repeat(2e3)
397
- });
398
- expect(result).toBe(`import 'package:http/http.dart' as http;
399
-
400
- void main() async {
401
- final response = await http.get(Uri.parse('https://example.com/${"a".repeat(2e3)}'));
402
- print(response.body);
403
- }`);
404
- });
405
- it("handles multiple headers with same name", () => {
406
- const result = dartHttp.generate({
407
- url: "https://example.com",
408
- headers: [
409
- { name: "X-Custom", value: "value1" },
410
- { name: "X-Custom", value: "value2" }
411
- ]
412
- });
413
- expect(result).toBe(`import 'package:http/http.dart' as http;
414
-
415
- void main() async {
416
- final headers = <String,String>{
417
- 'X-Custom': 'value2',
418
- };
419
-
420
- final response = await http.get(Uri.parse('https://example.com'), headers: headers);
421
- print(response.body);
422
- }`);
423
- });
424
- it("handles headers with empty values", () => {
425
- const result = dartHttp.generate({
426
- url: "https://example.com",
427
- headers: [{ name: "X-Empty", value: "" }]
428
- });
429
- expect(result).toBe(`import 'package:http/http.dart' as http;
430
-
431
- void main() async {
432
- final response = await http.get(Uri.parse('https://example.com'));
433
- print(response.body);
434
- }`);
435
- });
436
- it("handles multipart form data with empty file names", () => {
437
- const result = dartHttp.generate({
438
- url: "https://example.com",
439
- method: "POST",
440
- postData: {
441
- mimeType: "multipart/form-data",
442
- params: [
443
- {
444
- name: "file",
445
- fileName: ""
446
- }
447
- ]
448
- }
449
- });
450
- expect(result).toBe(`import 'package:http/http.dart' as http;
451
-
452
- void main() async {
453
- final body = <String,String>{
454
- 'file': '',
455
- };
456
-
457
- final response = await http.post(Uri.parse('https://example.com'), body: body);
458
- print(response.body);
459
- }`);
460
- });
461
- it("handles JSON body with special characters", () => {
462
- const result = dartHttp.generate({
463
- url: "https://example.com",
464
- method: "POST",
465
- headers: [
466
- {
467
- name: "Content-Type",
468
- value: "application/json"
469
- }
470
- ],
471
- postData: {
472
- mimeType: "application/json",
473
- text: JSON.stringify({
474
- key: '"quotes" and \\backslashes\\',
475
- nested: {
476
- array: ["item1", null, void 0]
477
- }
478
- })
479
- }
480
- });
481
- expect(result).toBe(`import 'package:http/http.dart' as http;
482
-
483
- void main() async {
484
- final headers = <String,String>{
485
- 'Content-Type': 'application/json',
486
- };
487
-
488
- final body = r'{"key":"\\"quotes\\" and \\\\backslashes\\\\","nested":{"array":["item1",null,null]}}';
489
-
490
- final response = await http.post(Uri.parse('https://example.com'), headers: headers, body: body);
491
- print(response.body);
492
- }`);
493
- });
494
- it("handles cookies with special characters", () => {
495
- const result = dartHttp.generate({
496
- url: "https://example.com",
497
- cookies: [
498
- {
499
- name: "special;cookie",
500
- value: "value with spaces"
501
- }
502
- ]
503
- });
504
- expect(result).toBe(`import 'package:http/http.dart' as http;
505
-
506
- void main() async {
507
- final headers = <String,String>{
508
- 'Cookie': 'special%3Bcookie=value%20with%20spaces',
509
- };
510
-
511
- final response = await http.get(Uri.parse('https://example.com'), headers: headers);
512
- print(response.body);
513
- }`);
514
- });
515
- it("prettifies JSON body", () => {
516
- const result = dartHttp.generate({
517
- url: "https://example.com",
518
- method: "POST",
519
- headers: [
520
- {
521
- name: "Content-Type",
522
- value: "application/json"
523
- }
524
- ],
525
- postData: {
526
- mimeType: "application/json",
527
- text: JSON.stringify({
528
- nested: {
529
- array: [1, 2, 3],
530
- object: { foo: "bar" }
531
- },
532
- simple: "value"
533
- })
534
- }
535
- });
536
- expect(result).toBe(`import 'package:http/http.dart' as http;
537
-
538
- void main() async {
539
- final headers = <String,String>{
540
- 'Content-Type': 'application/json',
541
- };
542
-
543
- final body = r'{"nested":{"array":[1,2,3],"object":{"foo":"bar"}},"simple":"value"}';
544
-
545
- final response = await http.post(Uri.parse('https://example.com'), headers: headers, body: body);
546
- print(response.body);
547
- }`);
548
- });
549
- });
550
- //# sourceMappingURL=http.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/plugins/dart/http/http.test.ts"],
4
- "sourcesContent": ["import { describe, expect, it } from 'vitest'\n\nimport { dartHttp } from './http'\n\ndescribe('dartHttp', () => {\n it('returns a basic request', () => {\n const result = dartHttp.generate({\n url: 'https://example.com',\n })\n\n expect(result).toBe(`import 'package:http/http.dart' as http;\n\nvoid main() async {\n final response = await http.get(Uri.parse('https://example.com'));\n print(response.body);\n}`)\n })\n\n it('returns a POST request', () => {\n const result = dartHttp.generate({\n url: 'https://example.com',\n method: 'post',\n })\n\n expect(result).toBe(`import 'package:http/http.dart' as http;\n\nvoid main() async {\n final response = await http.post(Uri.parse('https://example.com'));\n print(response.body);\n}`)\n })\n\n it('has headers', () => {\n const result = dartHttp.generate({\n url: 'https://example.com',\n headers: [\n {\n name: 'Content-Type',\n value: 'application/json',\n },\n ],\n })\n\n expect(result).toBe(`import 'package:http/http.dart' as http;\n\nvoid main() async {\n final headers = <String,String>{\n 'Content-Type': 'application/json',\n };\n\n final response = await http.get(Uri.parse('https://example.com'), headers: headers);\n print(response.body);\n}`)\n })\n\n it('doesn\u2019t add empty headers', () => {\n const result = dartHttp.generate({\n url: 'https://example.com',\n headers: [],\n })\n\n expect(result).toBe(`import 'package:http/http.dart' as http;\n\nvoid main() async {\n final response = await http.get(Uri.parse('https://example.com'));\n print(response.body);\n}`)\n })\n\n it('has JSON body', () => {\n const result = dartHttp.generate({\n url: 'https://example.com',\n method: 'POST',\n headers: [\n {\n name: 'Content-Type',\n value: 'application/json',\n },\n ],\n postData: {\n mimeType: 'application/json',\n text: JSON.stringify({\n hello: 'world',\n }),\n },\n })\n\n expect(result).toBe(`import 'package:http/http.dart' as http;\n\nvoid main() async {\n final headers = <String,String>{\n 'Content-Type': 'application/json',\n };\n\n final body = r'{\"hello\":\"world\"}';\n\n final response = await http.post(Uri.parse('https://example.com'), headers: headers, body: body);\n print(response.body);\n}`)\n })\n\n it('has query string', () => {\n const result = dartHttp.generate({\n url: 'https://example.com',\n queryString: [\n {\n name: 'foo',\n value: 'bar',\n },\n {\n name: 'bar',\n value: 'foo',\n },\n ],\n })\n\n expect(result).toBe(`import 'package:http/http.dart' as http;\n\nvoid main() async {\n final response = await http.get(Uri.parse('https://example.com?foo=bar&bar=foo'));\n print(response.body);\n}`)\n })\n\n it('has cookies', () => {\n const result = dartHttp.generate({\n url: 'https://example.com',\n cookies: [\n {\n name: 'foo',\n value: 'bar',\n },\n {\n name: 'bar',\n value: 'foo',\n },\n ],\n })\n\n expect(result).toBe(`import 'package:http/http.dart' as http;\n\nvoid main() async {\n final headers = <String,String>{\n 'Cookie': 'foo=bar; bar=foo',\n };\n\n final response = await http.get(Uri.parse('https://example.com'), headers: headers);\n print(response.body);\n}`)\n })\n\n it('doesn\u2019t add empty cookies', () => {\n const result = dartHttp.generate({\n url: 'https://example.com',\n cookies: [],\n })\n\n expect(result).toBe(`import 'package:http/http.dart' as http;\n\nvoid main() async {\n final response = await http.get(Uri.parse('https://example.com'));\n print(response.body);\n}`)\n })\n\n it('adds basic auth credentials', () => {\n const result = dartHttp.generate(\n {\n url: 'https://example.com',\n },\n {\n auth: {\n username: 'user',\n password: 'pass',\n },\n },\n )\n\n expect(result).toBe(`import 'package:http/http.dart' as http;\n\nvoid main() async {\n final headers = <String,String>{\n 'Authorization': 'Basic ' + base64Encode(utf8.encode('user:pass')),\n };\n\n final response = await http.get(Uri.parse('https://example.com'), headers: headers);\n print(response.body);\n}`)\n })\n\n it('omits auth when not provided', () => {\n const result = dartHttp.generate({\n url: 'https://example.com',\n })\n\n expect(result).toBe(`import 'package:http/http.dart' as http;\n\nvoid main() async {\n final response = await http.get(Uri.parse('https://example.com'));\n print(response.body);\n}`)\n })\n\n it('omits auth when username is missing', () => {\n const result = dartHttp.generate(\n {\n url: 'https://example.com',\n },\n {\n auth: {\n username: '',\n password: 'pass',\n },\n },\n )\n\n expect(result).toBe(`import 'package:http/http.dart' as http;\n\nvoid main() async {\n final response = await http.get(Uri.parse('https://example.com'));\n print(response.body);\n}`)\n })\n\n it('omits auth when password is missing', () => {\n const result = dartHttp.generate(\n {\n url: 'https://example.com',\n },\n {\n auth: {\n username: 'user',\n password: '',\n },\n },\n )\n\n expect(result).toBe(`import 'package:http/http.dart' as http;\n\nvoid main() async {\n final response = await http.get(Uri.parse('https://example.com'));\n print(response.body);\n}`)\n })\n\n it('handles special characters in auth credentials', () => {\n const result = dartHttp.generate(\n {\n url: 'https://example.com',\n },\n {\n auth: {\n username: 'user@example.com',\n password: 'pass:word!',\n },\n },\n )\n\n expect(result).toBe(`import 'package:http/http.dart' as http;\n\nvoid main() async {\n final headers = <String,String>{\n 'Authorization': 'Basic ' + base64Encode(utf8.encode('user@example.com:pass:word!')),\n };\n\n final response = await http.get(Uri.parse('https://example.com'), headers: headers);\n print(response.body);\n}`)\n })\n\n it('handles undefined auth object', () => {\n const result = dartHttp.generate(\n {\n url: 'https://example.com',\n },\n {\n auth: undefined,\n },\n )\n\n expect(result).toBe(`import 'package:http/http.dart' as http;\n\nvoid main() async {\n final response = await http.get(Uri.parse('https://example.com'));\n print(response.body);\n}`)\n })\n\n it('handles multipart form data with files', () => {\n const result = dartHttp.generate({\n url: 'https://example.com',\n method: 'POST',\n postData: {\n mimeType: 'multipart/form-data',\n params: [\n {\n name: 'file',\n fileName: 'test.txt',\n },\n {\n name: 'field',\n value: 'value',\n },\n ],\n },\n })\n\n expect(result).toBe(`import 'package:http/http.dart' as http;\n\nvoid main() async {\n final body = <String,String>{\n 'file': 'test.txt',\n 'field': 'value',\n };\n\n final response = await http.post(Uri.parse('https://example.com'), body: body);\n print(response.body);\n}`)\n })\n\n it('handles url-encoded form data with special characters', () => {\n const result = dartHttp.generate({\n url: 'https://example.com',\n method: 'POST',\n postData: {\n mimeType: 'application/x-www-form-urlencoded',\n params: [\n {\n name: 'special chars!@#',\n value: 'value',\n },\n ],\n },\n })\n\n expect(result).toBe(`import 'package:http/http.dart' as http;\n\nvoid main() async {\n final body = 'special%20chars!%40%23=value';\n\n final response = await http.post(Uri.parse('https://example.com'), body: body);\n print(response.body);\n}`)\n })\n\n it('handles binary data flag', () => {\n const result = dartHttp.generate({\n url: 'https://example.com',\n method: 'POST',\n postData: {\n mimeType: 'application/octet-stream',\n text: 'binary content',\n },\n })\n\n expect(result).toBe(`import 'package:http/http.dart' as http;\n\nvoid main() async {\n final body = 'binary content';\n\n final response = await http.post(Uri.parse('https://example.com'), body: body);\n print(response.body);\n}`)\n })\n\n it('handles compressed response', () => {\n const result = dartHttp.generate({\n url: 'https://example.com',\n headers: [\n {\n name: 'Accept-Encoding',\n value: 'gzip, deflate',\n },\n ],\n })\n\n expect(result).toBe(`import 'package:http/http.dart' as http;\n\nvoid main() async {\n final headers = <String,String>{\n 'Accept-Encoding': 'gzip, deflate',\n };\n\n final response = await http.get(Uri.parse('https://example.com'), headers: headers);\n print(response.body);\n}`)\n })\n\n it('handles special characters in URL', () => {\n const result = dartHttp.generate({\n url: 'https://example.com/path with spaces/[brackets]',\n })\n\n expect(result).toBe(`import 'package:http/http.dart' as http;\n\nvoid main() async {\n final response = await http.get(Uri.parse('https://example.com/path with spaces/[brackets]'));\n print(response.body);\n}`)\n })\n\n it('handles special characters in query parameters', () => {\n const result = dartHttp.generate({\n url: 'https://example.com',\n queryString: [\n {\n name: 'q',\n value: 'hello world & more',\n },\n {\n name: 'special',\n value: '!@#$%^&*()',\n },\n ],\n })\n\n expect(result).toBe(`import 'package:http/http.dart' as http;\n\nvoid main() async {\n final response = await http.get(Uri.parse('https://example.com?q=hello%20world%20%26%20more&special=!%40%23%24%25%5E%26*()'));\n print(response.body);\n}`)\n })\n\n it('handles empty URL', () => {\n const result = dartHttp.generate({\n url: '',\n })\n\n expect(result).toBe(`import 'package:http/http.dart' as http;\n\nvoid main() async {\n final response = await http.get(Uri.parse(''));\n print(response.body);\n}`)\n })\n\n it('handles extremely long URLs', () => {\n const result = dartHttp.generate({\n url: 'https://example.com/' + 'a'.repeat(2000),\n })\n\n expect(result).toBe(`import 'package:http/http.dart' as http;\n\nvoid main() async {\n final response = await http.get(Uri.parse('https://example.com/${'a'.repeat(2000)}'));\n print(response.body);\n}`)\n })\n\n it('handles multiple headers with same name', () => {\n const result = dartHttp.generate({\n url: 'https://example.com',\n headers: [\n { name: 'X-Custom', value: 'value1' },\n { name: 'X-Custom', value: 'value2' },\n ],\n })\n\n expect(result).toBe(`import 'package:http/http.dart' as http;\n\nvoid main() async {\n final headers = <String,String>{\n 'X-Custom': 'value2',\n };\n\n final response = await http.get(Uri.parse('https://example.com'), headers: headers);\n print(response.body);\n}`)\n })\n\n it('handles headers with empty values', () => {\n const result = dartHttp.generate({\n url: 'https://example.com',\n headers: [{ name: 'X-Empty', value: '' }],\n })\n\n expect(result).toBe(`import 'package:http/http.dart' as http;\n\nvoid main() async {\n final response = await http.get(Uri.parse('https://example.com'));\n print(response.body);\n}`)\n })\n\n it('handles multipart form data with empty file names', () => {\n const result = dartHttp.generate({\n url: 'https://example.com',\n method: 'POST',\n postData: {\n mimeType: 'multipart/form-data',\n params: [\n {\n name: 'file',\n fileName: '',\n },\n ],\n },\n })\n\n expect(result).toBe(`import 'package:http/http.dart' as http;\n\nvoid main() async {\n final body = <String,String>{\n 'file': '',\n };\n\n final response = await http.post(Uri.parse('https://example.com'), body: body);\n print(response.body);\n}`)\n })\n\n it('handles JSON body with special characters', () => {\n const result = dartHttp.generate({\n url: 'https://example.com',\n method: 'POST',\n headers: [\n {\n name: 'Content-Type',\n value: 'application/json',\n },\n ],\n postData: {\n mimeType: 'application/json',\n text: JSON.stringify({\n key: '\"quotes\" and \\\\backslashes\\\\',\n nested: {\n array: ['item1', null, undefined],\n },\n }),\n },\n })\n\n expect(result).toBe(`import 'package:http/http.dart' as http;\n\nvoid main() async {\n final headers = <String,String>{\n 'Content-Type': 'application/json',\n };\n\n final body = r'{\"key\":\"\\\\\"quotes\\\\\" and \\\\\\\\backslashes\\\\\\\\\",\"nested\":{\"array\":[\"item1\",null,null]}}';\n\n final response = await http.post(Uri.parse('https://example.com'), headers: headers, body: body);\n print(response.body);\n}`)\n })\n\n it('handles cookies with special characters', () => {\n const result = dartHttp.generate({\n url: 'https://example.com',\n cookies: [\n {\n name: 'special;cookie',\n value: 'value with spaces',\n },\n ],\n })\n\n expect(result).toBe(`import 'package:http/http.dart' as http;\n\nvoid main() async {\n final headers = <String,String>{\n 'Cookie': 'special%3Bcookie=value%20with%20spaces',\n };\n\n final response = await http.get(Uri.parse('https://example.com'), headers: headers);\n print(response.body);\n}`)\n })\n\n it('prettifies JSON body', () => {\n const result = dartHttp.generate({\n url: 'https://example.com',\n method: 'POST',\n headers: [\n {\n name: 'Content-Type',\n value: 'application/json',\n },\n ],\n postData: {\n mimeType: 'application/json',\n text: JSON.stringify({\n nested: {\n array: [1, 2, 3],\n object: { foo: 'bar' },\n },\n simple: 'value',\n }),\n },\n })\n\n expect(result).toBe(`import 'package:http/http.dart' as http;\n\nvoid main() async {\n final headers = <String,String>{\n 'Content-Type': 'application/json',\n };\n\n final body = r'{\"nested\":{\"array\":[1,2,3],\"object\":{\"foo\":\"bar\"}},\"simple\":\"value\"}';\n\n final response = await http.post(Uri.parse('https://example.com'), headers: headers, body: body);\n print(response.body);\n}`)\n })\n})\n"],
5
- "mappings": "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",
6
- "names": []
7
- }