Skip to content

Commit b4d2bbc

Browse files
committed
fix(cts): add tests for HTML error
1 parent fd69cf2 commit b4d2bbc

File tree

5 files changed

+144
-84
lines changed

5 files changed

+144
-84
lines changed

scripts/cts/testServer/timeout.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,11 @@ function addRoutes(app: express.Express): void {
9797

9898
// no response, just hang
9999
});
100+
101+
app.get('/1/html-error', (req, res) => {
102+
res.setHeader('Content-Type', 'text/html');
103+
res.status(429).send('<html><body>429 Too Many Requests</body></html>');
104+
});
100105
}
101106

102107
export function timeoutServer(): Promise<Server> {

tests/CTS/client/ingestion/api.json

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
[
2+
{
3+
"testName": "can handle HTML error",
4+
"autoCreateClient": false,
5+
"steps": [
6+
{
7+
"type": "createClient",
8+
"parameters": {
9+
"appId": "test-app-id",
10+
"apiKey": "test-api-key",
11+
"region": "us",
12+
"customHosts": [
13+
{
14+
"port": 6676
15+
}
16+
]
17+
}
18+
},
19+
{
20+
"type": "method",
21+
"method": "customGet",
22+
"parameters": {
23+
"path": "1/html-error"
24+
},
25+
"expected": {
26+
"error": {
27+
"csharp": "<html><body>429 too many requests</body></html>",
28+
"go": "API error [429] Too Many Requests",
29+
"java": "Status Code: 429 - <html><body>429 Too Many Requests</body></html>",
30+
"javascript": "<html><body>429 Too Many Requests</body></html>",
31+
"kotlin": "Client request(GET http://%localhost%:6676/1/html-error) invalid: 429 Too Many Requests. Text: \"<html><body>429 Too Many Requests</body></html>\"",
32+
"php": "json_decode error: Syntax error",
33+
"python": "Too Many Requests",
34+
"ruby": "unexpected token at '<html><body>429 Too Many Requests</body></html>'",
35+
"scala": "<html><body>429 Too Many Requests</body></html>",
36+
"swift": "HTTP error: Status code: 429 Message: No message"
37+
}
38+
}
39+
}
40+
]
41+
}
42+
]

tests/output/javascript/yarn.lock

Lines changed: 89 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -347,94 +347,93 @@ __metadata:
347347
languageName: node
348348
linkType: hard
349349

350-
"@types/node@npm:22.8.1":
351-
version: 22.8.1
352-
resolution: "@types/node@npm:22.8.1"
350+
"@types/node@npm:22.9.0":
351+
version: 22.9.0
352+
resolution: "@types/node@npm:22.9.0"
353353
dependencies:
354354
undici-types: "npm:~6.19.8"
355-
checksum: 10/ae969e3d956dead1422c35d568ea5d48dd124a38a1a337cbd120fec6e13cc92b45c7308f91f1139fcd2337a67d4704d5614d6a2c444b1fb268f85e9f1d24c713
355+
checksum: 10/a7df3426891868b0f5fb03e46aeddd8446178233521c624a44531c92a040cf08a82d8235f7e1e02af731fd16984665d4d71f3418caf9c2788313b10f040d615d
356356
languageName: node
357357
linkType: hard
358358

359-
"@vitest/expect@npm:2.1.3":
360-
version: 2.1.3
361-
resolution: "@vitest/expect@npm:2.1.3"
359+
"@vitest/expect@npm:2.1.4":
360+
version: 2.1.4
361+
resolution: "@vitest/expect@npm:2.1.4"
362362
dependencies:
363-
"@vitest/spy": "npm:2.1.3"
364-
"@vitest/utils": "npm:2.1.3"
365-
chai: "npm:^5.1.1"
363+
"@vitest/spy": "npm:2.1.4"
364+
"@vitest/utils": "npm:2.1.4"
365+
chai: "npm:^5.1.2"
366366
tinyrainbow: "npm:^1.2.0"
367-
checksum: 10/94e61e01f14cfcd9ced0e7ac1bbdeee55ff4bf68f09d8f244fd7d73f97b106f35d10cba3fe7a0132464c312206f2eee9e83b16a8d761101b61da053890062858
367+
checksum: 10/0b3806d39233843a9661f6d5ccde489c9b6d278426f889198a862d601dcc186f107398487374195eb0dae90c9f69628f3f216200d644f817fa25d64ae1bc537e
368368
languageName: node
369369
linkType: hard
370370

371-
"@vitest/mocker@npm:2.1.3":
372-
version: 2.1.3
373-
resolution: "@vitest/mocker@npm:2.1.3"
371+
"@vitest/mocker@npm:2.1.4":
372+
version: 2.1.4
373+
resolution: "@vitest/mocker@npm:2.1.4"
374374
dependencies:
375-
"@vitest/spy": "npm:2.1.3"
375+
"@vitest/spy": "npm:2.1.4"
376376
estree-walker: "npm:^3.0.3"
377-
magic-string: "npm:^0.30.11"
377+
magic-string: "npm:^0.30.12"
378378
peerDependencies:
379-
"@vitest/spy": 2.1.3
380-
msw: ^2.3.5
379+
msw: ^2.4.9
381380
vite: ^5.0.0
382381
peerDependenciesMeta:
383382
msw:
384383
optional: true
385384
vite:
386385
optional: true
387-
checksum: 10/84be8830d6e965109730257d7a84b3d7594db0998ae55decdbfc304857c1c7d29b49f1f5b23f2addcbce1bd7e8bb33832407737a9bb3f95cb3bf7bb312db4d9d
386+
checksum: 10/00f323cc184977b247a1f0b9c51fdcceb97377031d728c69ef0bd14ebf0256742a94c68c6caa90eb073ed3de4277febd7d54715508bff05bb2fb7767ce11afbe
388387
languageName: node
389388
linkType: hard
390389

391-
"@vitest/pretty-format@npm:2.1.3, @vitest/pretty-format@npm:^2.1.3":
392-
version: 2.1.3
393-
resolution: "@vitest/pretty-format@npm:2.1.3"
390+
"@vitest/pretty-format@npm:2.1.4, @vitest/pretty-format@npm:^2.1.4":
391+
version: 2.1.4
392+
resolution: "@vitest/pretty-format@npm:2.1.4"
394393
dependencies:
395394
tinyrainbow: "npm:^1.2.0"
396-
checksum: 10/d9382ee93f0f32e2ef8fe03bda818e5277f052a50ddb05b6a6cf0864b2ccb228484f12f130c05faf62dc2140292ffafc213f2941b0fa24058b3ee2943daa286c
395+
checksum: 10/434e6a7903f72a3796f26516ad728aca92724909e18fd3f2cd4b9b8b0ae2cc7b4cd86e92ab9f2ac7bc005c7a7ef0bcb9d768c0264b4b0625f1f0748cc615f1f6
397396
languageName: node
398397
linkType: hard
399398

400-
"@vitest/runner@npm:2.1.3":
401-
version: 2.1.3
402-
resolution: "@vitest/runner@npm:2.1.3"
399+
"@vitest/runner@npm:2.1.4":
400+
version: 2.1.4
401+
resolution: "@vitest/runner@npm:2.1.4"
403402
dependencies:
404-
"@vitest/utils": "npm:2.1.3"
403+
"@vitest/utils": "npm:2.1.4"
405404
pathe: "npm:^1.1.2"
406-
checksum: 10/cdf9b82d388c1cc148753f4a8632dfcadf9c4a1c0e065fdcd485d5af824af62507fd7eab9efb21244009775c05773ccb59547043af522a5ab6d216433321066e
405+
checksum: 10/51dbea968ace6edefb058d88c9736fa524a64f4dc750ec163b43f5015a31b31f2d80a7b20de4c2a819fbfb172162ad4d0f8428c78fa7ca832c1a1b135161ac4b
407406
languageName: node
408407
linkType: hard
409408

410-
"@vitest/snapshot@npm:2.1.3":
411-
version: 2.1.3
412-
resolution: "@vitest/snapshot@npm:2.1.3"
409+
"@vitest/snapshot@npm:2.1.4":
410+
version: 2.1.4
411+
resolution: "@vitest/snapshot@npm:2.1.4"
413412
dependencies:
414-
"@vitest/pretty-format": "npm:2.1.3"
415-
magic-string: "npm:^0.30.11"
413+
"@vitest/pretty-format": "npm:2.1.4"
414+
magic-string: "npm:^0.30.12"
416415
pathe: "npm:^1.1.2"
417-
checksum: 10/2c0c4ad8abb758f2f76d1d6094f8928360437e09d0a59e0c6a85a544c892cc41a5324ebbc5657a66c8a3793e51cbf58e357c7f71e899f4e5c5eb76e8c9745abf
416+
checksum: 10/785f74cf5f7745eb0dcb73fe3c628bc1f687c6341e8ba63d722fa83609d21465302ebd208405b9f91ce87fb36720a0f361c949983d5caccbcb8ec2119f995483
418417
languageName: node
419418
linkType: hard
420419

421-
"@vitest/spy@npm:2.1.3":
422-
version: 2.1.3
423-
resolution: "@vitest/spy@npm:2.1.3"
420+
"@vitest/spy@npm:2.1.4":
421+
version: 2.1.4
422+
resolution: "@vitest/spy@npm:2.1.4"
424423
dependencies:
425-
tinyspy: "npm:^3.0.0"
426-
checksum: 10/94d6f1bc34da5d0c973d9382c133b938e555fcf2d238edf0aaad3de1a98dd57ebf7c104ba229c6beec48122d2e6f55386d8d2cf96a5804dc95ac683a54754cc7
424+
tinyspy: "npm:^3.0.2"
425+
checksum: 10/4dd3e7c28928abb047c567b3711d1cbccd59aaae294c57efaab83cdd723b568882de5376fc086c919a4cb6d1df5e6cc0502b3171cce06dfce87863c731fd5d36
427426
languageName: node
428427
linkType: hard
429428

430-
"@vitest/utils@npm:2.1.3":
431-
version: 2.1.3
432-
resolution: "@vitest/utils@npm:2.1.3"
429+
"@vitest/utils@npm:2.1.4":
430+
version: 2.1.4
431+
resolution: "@vitest/utils@npm:2.1.4"
433432
dependencies:
434-
"@vitest/pretty-format": "npm:2.1.3"
435-
loupe: "npm:^3.1.1"
433+
"@vitest/pretty-format": "npm:2.1.4"
434+
loupe: "npm:^3.1.2"
436435
tinyrainbow: "npm:^1.2.0"
437-
checksum: 10/f064e6634cb84c925a17d8937df7441d150c3e24fa5bbd6304151d11dab6cdeb0cb3d5a95a9aacb8b416c87fb0d9aa8c6b9cc5e174191784231e8345948d6d18
436+
checksum: 10/aaaf5310943abca0f0080d9638e67838f7e519d5670ec32e61184915efdfa5ec61d9b495cad6cb7dc492e8caeed14593e78dda77c8ea59c1671a231661f57142
438437
languageName: node
439438
linkType: hard
440439

@@ -550,16 +549,16 @@ __metadata:
550549
languageName: node
551550
linkType: hard
552551

553-
"chai@npm:^5.1.1":
554-
version: 5.1.1
555-
resolution: "chai@npm:5.1.1"
552+
"chai@npm:^5.1.2":
553+
version: 5.1.2
554+
resolution: "chai@npm:5.1.2"
556555
dependencies:
557556
assertion-error: "npm:^2.0.1"
558557
check-error: "npm:^2.1.1"
559558
deep-eql: "npm:^5.0.1"
560559
loupe: "npm:^3.1.0"
561560
pathval: "npm:^2.0.0"
562-
checksum: 10/ee67279a5613bd36dc1dc13660042429ae2f1dc5a9030a6abcf381345866dfb5bce7bc10b9d74c8de86b6f656489f654bbbef3f3361e06925591e6a00c72afff
561+
checksum: 10/e8c2bbc83cb5a2f87130d93056d4cfbbe04106e12aa798b504816dbe3fa538a9f68541b472e56cbf0f54558b501d7e31867d74b8218abcd5a8cc8ba536fba46c
563562
languageName: node
564563
linkType: hard
565564

@@ -611,7 +610,7 @@ __metadata:
611610
languageName: node
612611
linkType: hard
613612

614-
"debug@npm:4, debug@npm:^4.3.4, debug@npm:^4.3.6":
613+
"debug@npm:4, debug@npm:^4.3.4, debug@npm:^4.3.7":
615614
version: 4.3.7
616615
resolution: "debug@npm:4.3.7"
617616
dependencies:
@@ -770,6 +769,13 @@ __metadata:
770769
languageName: node
771770
linkType: hard
772771

772+
"expect-type@npm:^1.1.0":
773+
version: 1.1.0
774+
resolution: "expect-type@npm:1.1.0"
775+
checksum: 10/05fca80ddc7d493a89361f783c6b000750fa04a8226bc24701f3b90adb0efc2fb467f2a0baaed4015a02d8b9034ef5bb87521df9dba980f50b1105bd596ef833
776+
languageName: node
777+
linkType: hard
778+
773779
"exponential-backoff@npm:^3.1.1":
774780
version: 3.1.1
775781
resolution: "exponential-backoff@npm:3.1.1"
@@ -954,11 +960,11 @@ __metadata:
954960
dependencies:
955961
"@algolia/client-composition": "link:../../../clients/algoliasearch-client-javascript/packages/client-composition"
956962
"@algolia/requester-testing": "link:../../../clients/algoliasearch-client-javascript/packages/requester-testing"
957-
"@types/node": "npm:22.8.1"
963+
"@types/node": "npm:22.9.0"
958964
algoliasearch: "link:../../../clients/algoliasearch-client-javascript/packages/algoliasearch"
959965
dotenv: "npm:16.4.5"
960966
typescript: "npm:5.6.3"
961-
vitest: "npm:2.1.3"
967+
vitest: "npm:2.1.4"
962968
languageName: unknown
963969
linkType: soft
964970

@@ -969,7 +975,7 @@ __metadata:
969975
languageName: node
970976
linkType: hard
971977

972-
"loupe@npm:^3.1.0, loupe@npm:^3.1.1":
978+
"loupe@npm:^3.1.0, loupe@npm:^3.1.2":
973979
version: 3.1.2
974980
resolution: "loupe@npm:3.1.2"
975981
checksum: 10/8f5734e53fb64cd914aa7d986e01b6d4c2e3c6c56dcbd5428d71c2703f0ab46b5ab9f9eeaaf2b485e8a1c43f865bdd16ec08ae1a661c8f55acdbd9f4d59c607a
@@ -983,7 +989,7 @@ __metadata:
983989
languageName: node
984990
linkType: hard
985991

986-
"magic-string@npm:^0.30.11":
992+
"magic-string@npm:^0.30.12":
987993
version: 0.30.12
988994
resolution: "magic-string@npm:0.30.12"
989995
dependencies:
@@ -1492,14 +1498,14 @@ __metadata:
14921498
languageName: node
14931499
linkType: hard
14941500

1495-
"tinyexec@npm:^0.3.0":
1501+
"tinyexec@npm:^0.3.1":
14961502
version: 0.3.1
14971503
resolution: "tinyexec@npm:0.3.1"
14981504
checksum: 10/0537c70590d52d354f40c0255ff0f654a3d18ddb3812b440ddf9d436edf516c8057838ad5a38744c0c59670ec03e3cf23fbe04ae3d49f031d948274e99002569
14991505
languageName: node
15001506
linkType: hard
15011507

1502-
"tinypool@npm:^1.0.0":
1508+
"tinypool@npm:^1.0.1":
15031509
version: 1.0.1
15041510
resolution: "tinypool@npm:1.0.1"
15051511
checksum: 10/eaceb93784b8e27e60c0e3e2c7d11c29e1e79b2a025b2c232215db73b90fe22bd4753ad53fc8e801c2b5a63b94a823af549555d8361272bc98271de7dd4a9925
@@ -1513,7 +1519,7 @@ __metadata:
15131519
languageName: node
15141520
linkType: hard
15151521

1516-
"tinyspy@npm:^3.0.0":
1522+
"tinyspy@npm:^3.0.2":
15171523
version: 3.0.2
15181524
resolution: "tinyspy@npm:3.0.2"
15191525
checksum: 10/5db671b2ff5cd309de650c8c4761ca945459d7204afb1776db9a04fb4efa28a75f08517a8620c01ee32a577748802231ad92f7d5b194dc003ee7f987a2a06337
@@ -1565,17 +1571,17 @@ __metadata:
15651571
languageName: node
15661572
linkType: hard
15671573

1568-
"vite-node@npm:2.1.3":
1569-
version: 2.1.3
1570-
resolution: "vite-node@npm:2.1.3"
1574+
"vite-node@npm:2.1.4":
1575+
version: 2.1.4
1576+
resolution: "vite-node@npm:2.1.4"
15711577
dependencies:
15721578
cac: "npm:^6.7.14"
1573-
debug: "npm:^4.3.6"
1579+
debug: "npm:^4.3.7"
15741580
pathe: "npm:^1.1.2"
15751581
vite: "npm:^5.0.0"
15761582
bin:
15771583
vite-node: vite-node.mjs
1578-
checksum: 10/8ba6b145cbb02a492c7bb1f0490d02383000462f234ed61d24f650547163825c16f14e6908ee1eb661403bd0a7a3fb3cdbedf116cc015b1e5cdf7bb992872a01
1584+
checksum: 10/3c3fbe6e41ab1716f4e6e0b52dcb80e027cb481df03e31d9bb5d16bb0ffabc5c884cca705ef8a5dea60f787e5eb78a428977d0d40e61e1f331bfb8c3d486d3e2
15791585
languageName: node
15801586
linkType: hard
15811587

@@ -1622,34 +1628,35 @@ __metadata:
16221628
languageName: node
16231629
linkType: hard
16241630

1625-
"vitest@npm:2.1.3":
1626-
version: 2.1.3
1627-
resolution: "vitest@npm:2.1.3"
1628-
dependencies:
1629-
"@vitest/expect": "npm:2.1.3"
1630-
"@vitest/mocker": "npm:2.1.3"
1631-
"@vitest/pretty-format": "npm:^2.1.3"
1632-
"@vitest/runner": "npm:2.1.3"
1633-
"@vitest/snapshot": "npm:2.1.3"
1634-
"@vitest/spy": "npm:2.1.3"
1635-
"@vitest/utils": "npm:2.1.3"
1636-
chai: "npm:^5.1.1"
1637-
debug: "npm:^4.3.6"
1638-
magic-string: "npm:^0.30.11"
1631+
"vitest@npm:2.1.4":
1632+
version: 2.1.4
1633+
resolution: "vitest@npm:2.1.4"
1634+
dependencies:
1635+
"@vitest/expect": "npm:2.1.4"
1636+
"@vitest/mocker": "npm:2.1.4"
1637+
"@vitest/pretty-format": "npm:^2.1.4"
1638+
"@vitest/runner": "npm:2.1.4"
1639+
"@vitest/snapshot": "npm:2.1.4"
1640+
"@vitest/spy": "npm:2.1.4"
1641+
"@vitest/utils": "npm:2.1.4"
1642+
chai: "npm:^5.1.2"
1643+
debug: "npm:^4.3.7"
1644+
expect-type: "npm:^1.1.0"
1645+
magic-string: "npm:^0.30.12"
16391646
pathe: "npm:^1.1.2"
16401647
std-env: "npm:^3.7.0"
16411648
tinybench: "npm:^2.9.0"
1642-
tinyexec: "npm:^0.3.0"
1643-
tinypool: "npm:^1.0.0"
1649+
tinyexec: "npm:^0.3.1"
1650+
tinypool: "npm:^1.0.1"
16441651
tinyrainbow: "npm:^1.2.0"
16451652
vite: "npm:^5.0.0"
1646-
vite-node: "npm:2.1.3"
1653+
vite-node: "npm:2.1.4"
16471654
why-is-node-running: "npm:^2.3.0"
16481655
peerDependencies:
16491656
"@edge-runtime/vm": "*"
16501657
"@types/node": ^18.0.0 || >=20.0.0
1651-
"@vitest/browser": 2.1.3
1652-
"@vitest/ui": 2.1.3
1658+
"@vitest/browser": 2.1.4
1659+
"@vitest/ui": 2.1.4
16531660
happy-dom: "*"
16541661
jsdom: "*"
16551662
peerDependenciesMeta:
@@ -1667,7 +1674,7 @@ __metadata:
16671674
optional: true
16681675
bin:
16691676
vitest: vitest.mjs
1670-
checksum: 10/f6079a88583045b551e6526c08774aeac4a9cf85b132793a03f9470c013326abd7fce3985e3c2217dc0dac2fadeee3506e3dc51e215f10862b2fe9da9289af0f
1677+
checksum: 10/bf0bb39e6148678ccc0d856a6a08e99458e80266558f97757bd20980812cd439f51599bcb64c807805594bf6fdb2111fdca688bc8884524819cc4a84a4598109
16711678
languageName: node
16721679
linkType: hard
16731680

tests/output/scala/src/test/scala/algoliasearch/package.scala

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,10 @@ package object algoliasearch {
1010

1111
def assertError(message: String)(call: => Unit)(implicit ec: ExecutionContextExecutor): Unit = {
1212
val error = intercept[Exception](call)
13-
assert(error.getMessage == message)
13+
assert(
14+
error.getMessage == message,
15+
s"Error message does not match, expected: $message, got: ${error.getMessage}"
16+
)
1417
}
1518

1619
@targetName("assertErrorFuture")

0 commit comments

Comments
 (0)