From ba8050c7d8922b8570534eec735e8526ed4fb101 Mon Sep 17 00:00:00 2001 From: Etienne Deladonchamps Date: Wed, 12 Feb 2025 19:17:03 +0100 Subject: [PATCH] Fix tests --- .vscode/settings.json | 5 +- deno.json | 2 + deno.lock | 187 ++++++++++++----------------------- tests/compress.test.ts | 2 +- tests/cookies.test.ts | 14 +-- tests/cors.actual.test.ts | 16 +-- tests/cors.package.test.ts | 8 +- tests/cors.preflight.test.ts | 10 +- tests/deps.ts | 6 -- tests/index.test.ts | 14 +-- tests/json.test.ts | 18 ++-- tests/real-life-01.test.ts | 2 +- tests/real-life-02.test.ts | 2 +- tests/utils/mountServer.ts | 14 ++- tests/zenjson.test.ts | 2 +- 15 files changed, 123 insertions(+), 179 deletions(-) delete mode 100644 tests/deps.ts diff --git a/.vscode/settings.json b/.vscode/settings.json index 93de5c6..a8ca28e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,5 +1,8 @@ { "deno.enable": true, "editor.defaultFormatter": "denoland.vscode-deno", - "npm.autoDetect": "off" + "npm.autoDetect": "off", + "[typescript]": { + "editor.defaultFormatter": "denoland.vscode-deno" + } } diff --git a/deno.json b/deno.json index f7903f9..22058f2 100644 --- a/deno.json +++ b/deno.json @@ -3,11 +3,13 @@ "version": "3.2.0", "exports": "./mod.ts", "imports": { + "@deno-library/compress": "jsr:@deno-library/compress@^0.5.5", "@dldc/chemin": "jsr:@dldc/chemin@^12.0.0", "@dldc/compose": "jsr:@dldc/compose@^6.0.2", "@dldc/erreur": "jsr:@dldc/erreur@^7.1.1", "@dldc/stack": "jsr:@dldc/stack@^7.0.0", "@dldc/zenjson": "jsr:@dldc/zenjson@^3.0.1", + "@openjs/port-free": "jsr:@openjs/port-free@^1.0.0", "@std/assert": "jsr:@std/assert@^1.0.11", "@std/expect": "jsr:@std/expect@^1.0.13", "@std/http": "jsr:@std/http@^1.0.13" diff --git a/deno.lock b/deno.lock index 72c997a..a4d3338 100644 --- a/deno.lock +++ b/deno.lock @@ -1,28 +1,50 @@ { "version": "4", "specifiers": { + "jsr:@deno-library/compress@~0.5.5": "0.5.5", + "jsr:@deno-library/crc32@1.0.2": "1.0.2", "jsr:@dldc/chemin@12": "12.0.1", "jsr:@dldc/compose@^6.0.2": "6.0.2", "jsr:@dldc/erreur@^7.1.1": "7.1.1", "jsr:@dldc/stack@7": "7.0.0", "jsr:@dldc/zenjson@^3.0.1": "3.0.1", + "jsr:@openjs/port-free@1": "1.0.0", "jsr:@std/assert@^1.0.11": "1.0.11", + "jsr:@std/bytes@^1.0.2": "1.0.4", "jsr:@std/cli@^1.0.12": "1.0.12", "jsr:@std/encoding@^1.0.7": "1.0.7", "jsr:@std/expect@^1.0.13": "1.0.13", "jsr:@std/fmt@^1.0.5": "1.0.5", + "jsr:@std/fs@1.0.5": "1.0.5", "jsr:@std/html@^1.0.3": "1.0.3", "jsr:@std/http@^1.0.13": "1.0.13", "jsr:@std/internal@^1.0.5": "1.0.5", + "jsr:@std/io@0.225.0": "0.225.0", "jsr:@std/media-types@^1.1.0": "1.1.0", "jsr:@std/net@^1.0.4": "1.0.4", + "jsr:@std/path@1.0.8": "1.0.8", + "jsr:@std/path@^1.0.7": "1.0.8", "jsr:@std/path@^1.0.8": "1.0.8", + "jsr:@std/streams@^1.0.7": "1.0.9", "jsr:@std/streams@^1.0.9": "1.0.9", - "npm:@types/node@*": "18.16.19" + "jsr:@std/tar@0.1.3": "0.1.3", + "jsr:@zip-js/zip-js@2.7.53": "2.7.53", + "npm:@types/node@*": "22.5.4" }, "jsr": { - "@dldc/chemin@12.0.0": { - "integrity": "0f5e06782f66740c5dfee6fbb8bc2bb8fe9b00479dad62758344c91e05945404" + "@deno-library/compress@0.5.5": { + "integrity": "18b651a33eac87d96ae8c941487045724a665d654e9d94120da43777393655d9", + "dependencies": [ + "jsr:@deno-library/crc32", + "jsr:@std/fs", + "jsr:@std/io", + "jsr:@std/path@1.0.8", + "jsr:@std/tar", + "jsr:@zip-js/zip-js" + ] + }, + "@deno-library/crc32@1.0.2": { + "integrity": "d2061bfee30c87c97f285dfca0fdc4458e632dc072a33ecfc73ca5177a5a39a0" }, "@dldc/chemin@12.0.1": { "integrity": "f1f97bab51732c825d89f7788e07e2b9875c41f95393809309def9b157034115" @@ -48,12 +70,18 @@ "jsr:@dldc/erreur" ] }, + "@openjs/port-free@1.0.0": { + "integrity": "0b70adc419a37d6c15d049a369cbc2020795bf50118409dde077efcae9e8e2e4" + }, "@std/assert@1.0.11": { "integrity": "2461ef3c368fe88bc60e186e7744a93112f16fd110022e113a0849e94d1c83c1", "dependencies": [ "jsr:@std/internal" ] }, + "@std/bytes@1.0.4": { + "integrity": "11a0debe522707c95c7b7ef89b478c13fb1583a7cfb9a85674cd2cc2e3a28abc" + }, "@std/cli@1.0.12": { "integrity": "e5cfb7814d189da174ecd7a34fbbd63f3513e24a1b307feb2fcd5da47a070d90" }, @@ -70,6 +98,12 @@ "@std/fmt@1.0.5": { "integrity": "0cfab43364bc36650d83c425cd6d99910fc20c4576631149f0f987eddede1a4d" }, + "@std/fs@1.0.5": { + "integrity": "41806ad6823d0b5f275f9849a2640d87e4ef67c51ee1b8fb02426f55e02fd44e", + "dependencies": [ + "jsr:@std/path@^1.0.7" + ] + }, "@std/html@1.0.3": { "integrity": "7a0ac35e050431fb49d44e61c8b8aac1ebd55937e0dc9ec6409aa4bab39a7988" }, @@ -82,13 +116,19 @@ "jsr:@std/html", "jsr:@std/media-types", "jsr:@std/net", - "jsr:@std/path", - "jsr:@std/streams" + "jsr:@std/path@^1.0.8", + "jsr:@std/streams@^1.0.9" ] }, "@std/internal@1.0.5": { "integrity": "54a546004f769c1ac9e025abd15a76b6671ddc9687e2313b67376125650dc7ba" }, + "@std/io@0.225.0": { + "integrity": "c1db7c5e5a231629b32d64b9a53139445b2ca640d828c26bf23e1c55f8c079b3", + "dependencies": [ + "jsr:@std/bytes" + ] + }, "@std/media-types@1.1.0": { "integrity": "c9d093f0c05c3512932b330e3cc1fe1d627b301db33a4c2c2185c02471d6eaa4" }, @@ -100,136 +140,37 @@ }, "@std/streams@1.0.9": { "integrity": "a9d26b1988cdd7aa7b1f4b51e1c36c1557f3f252880fa6cc5b9f37078b1a5035" + }, + "@std/tar@0.1.3": { + "integrity": "531270fc707b37ab9b5f051aa4943e7b16b86905e0398a4ebe062983b0c93115", + "dependencies": [ + "jsr:@std/streams@^1.0.7" + ] + }, + "@zip-js/zip-js@2.7.53": { + "integrity": "acea5bd8e01feb3fe4c242cfbde7d33dd5e006549a4eb1d15283bc0c778ed672" } }, "npm": { - "@types/node@18.16.19": { - "integrity": "sha512-IXl7o+R9iti9eBW4Wg2hx1xQDig183jj7YLn8F7udNceyfkbn1ZxmzZXuak20gR40D7pIkIY1kYGx5VIGbaHKA==" + "@types/node@22.5.4": { + "integrity": "sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==", + "dependencies": [ + "undici-types" + ] + }, + "undici-types@6.19.8": { + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==" } }, - "remote": { - "https://deno.land/std@0.129.0/_util/assert.ts": "e94f2eb37cebd7f199952e242c77654e43333c1ac4c5c700e929ea3aa5489f74", - "https://deno.land/std@0.129.0/_util/os.ts": "49b92edea1e82ba295ec946de8ffd956ed123e2948d9bd1d3e901b04e4307617", - "https://deno.land/std@0.129.0/async/abortable.ts": "a896ac6b0d4237bd2d2d248217cfa1f0d85ccda93cb25ebda55e33850e526be6", - "https://deno.land/std@0.129.0/async/deadline.ts": "48ac998d7564969f3e6ec6b6f9bf0217ebd00239b1b2292feba61272d5dd58d0", - "https://deno.land/std@0.129.0/async/debounce.ts": "564273ef242bcfcda19a439132f940db8694173abffc159ea34f07d18fc42620", - "https://deno.land/std@0.129.0/async/deferred.ts": "bc18e28108252c9f67dfca2bbc4587c3cbf3aeb6e155f8c864ca8ecff992b98a", - "https://deno.land/std@0.129.0/async/delay.ts": "cbbdf1c87d1aed8edc7bae13592fb3e27e3106e0748f089c263390d4f49e5f6c", - "https://deno.land/std@0.129.0/async/mod.ts": "2240c6841157738414331f47dee09bb8c0482c5b1980b6e3234dd03515c8132f", - "https://deno.land/std@0.129.0/async/mux_async_iterator.ts": "f4d1d259b0c694d381770ddaaa4b799a94843eba80c17f4a2ec2949168e52d1e", - "https://deno.land/std@0.129.0/async/pool.ts": "97b0dd27c69544e374df857a40902e74e39532f226005543eabacb551e277082", - "https://deno.land/std@0.129.0/async/tee.ts": "1341feb1f5b1a96f8628d0f8fc07d8c43d3813423f18a63bf1b4785568d21b1f", - "https://deno.land/std@0.129.0/bytes/bytes_list.ts": "67eb118e0b7891d2f389dad4add35856f4ad5faab46318ff99653456c23b025d", - "https://deno.land/std@0.129.0/bytes/equals.ts": "fc16dff2090cced02497f16483de123dfa91e591029f985029193dfaa9d894c9", - "https://deno.land/std@0.129.0/bytes/mod.ts": "d3b455c0dbd4804644159d1e25946ade5ee385d2359894de49e2c6101b18b7a9", - "https://deno.land/std@0.129.0/encoding/base64.ts": "c8c16b4adaa60d7a8eee047c73ece26844435e8f7f1328d74593dbb2dd58ea4f", - "https://deno.land/std@0.129.0/encoding/base64url.ts": "55f9d13df02efac10c6f96169daa3e702606a64e8aa27c0295f645f198c27130", - "https://deno.land/std@0.129.0/fmt/colors.ts": "30455035d6d728394781c10755351742dd731e3db6771b1843f9b9e490104d37", - "https://deno.land/std@0.129.0/fmt/printf.ts": "e2c0f72146aed1efecf0c39ab928b26ae493a2278f670a871a0fbdcf36ff3379", - "https://deno.land/std@0.129.0/fs/_util.ts": "0fb24eb4bfebc2c194fb1afdb42b9c3dda12e368f43e8f2321f84fc77d42cb0f", - "https://deno.land/std@0.129.0/fs/ensure_dir.ts": "9dc109c27df4098b9fc12d949612ae5c9c7169507660dcf9ad90631833209d9d", - "https://deno.land/std@0.129.0/fs/ensure_file.ts": "7d353e64fee3d4d1e7c6b6726a2a5e987ba402c15fb49566309042887349c545", - "https://deno.land/std@0.129.0/io/buffer.ts": "bd0c4bf53db4b4be916ca5963e454bddfd3fcd45039041ea161dbf826817822b", - "https://deno.land/std@0.129.0/io/files.ts": "d199ef64e918a256320ba8d8d44ae91de87c9077df8f8d6cca013f1b9fbbe285", - "https://deno.land/std@0.129.0/io/util.ts": "078da53bba767bec0d45f7da44411f6dbf269e51ef7fcfea5e3714e04681c674", - "https://deno.land/std@0.129.0/node/_buffer.mjs": "f4a7df481d4eed06dc0151b833177d8ef74fc3a96dd4d2b073e690b6ced9474d", - "https://deno.land/std@0.129.0/node/_core.ts": "568d277be2e086af996cbdd599fec569f5280e9a494335ca23ad392b130d7bb9", - "https://deno.land/std@0.129.0/node/_events.mjs": "c0e3e0e290a8b81fee9d2973a529c8dcd5ebb4406782d1f91085274e2cb8490f", - "https://deno.land/std@0.129.0/node/_fixed_queue.ts": "455b3c484de48e810b13bdf95cd1658ecb1ba6bcb8b9315ffe994efcde3ba5f5", - "https://deno.land/std@0.129.0/node/_next_tick.ts": "64c361f6bca21df2a72dd77b84bd49d80d97a694dd3080703bc78f52146351d1", - "https://deno.land/std@0.129.0/node/_process/exiting.ts": "bc9694769139ffc596f962087155a8bfef10101d03423b9dcbc51ce6e1f88fce", - "https://deno.land/std@0.129.0/node/_util/_util_callbackify.ts": "79928ad80df3e469f7dcdb198118a7436d18a9f6c08bd7a4382332ad25a718cf", - "https://deno.land/std@0.129.0/node/_utils.ts": "c2c352e83c4c96f5ff994b1c8246bff2abcb21bfc3f1c06162cb3af1d201e615", - "https://deno.land/std@0.129.0/node/buffer.ts": "fbecbf3f237fa49bec96e97ecf56a7b92d48037b3d11219288e68943cc921600", - "https://deno.land/std@0.129.0/node/events.ts": "a1d40fc0dbccc944379ef968b80ea08f9fce579e88b5057fdb64e4f0812476dd", - "https://deno.land/std@0.129.0/node/internal/buffer.mjs": "6662fe7fe517329453545be34cea27a24f8ccd6d09afd4f609f11ade2b6dfca7", - "https://deno.land/std@0.129.0/node/internal/crypto/keys.ts": "16ce7b15a9fc5e4e3dee8fde75dae12f3d722558d5a1a6e65a9b4f86d64a21e9", - "https://deno.land/std@0.129.0/node/internal/crypto/util.mjs": "1de55a47fdbed6721b467a77ba48fdd1550c10b5eee77bbdb602eaffee365a5e", - "https://deno.land/std@0.129.0/node/internal/error_codes.ts": "ac03c4eae33de3a69d6c98e8678003207eecf75a6900eb847e3fea3c8c9e6d8f", - "https://deno.land/std@0.129.0/node/internal/errors.ts": "0d3a1eb03b654beb29b8354759a6902f45a840d4f957e9a3c632a24ce4c32632", - "https://deno.land/std@0.129.0/node/internal/hide_stack_frames.ts": "a91962ec84610bc7ec86022c4593cdf688156a5910c07b5bcd71994225c13a03", - "https://deno.land/std@0.129.0/node/internal/normalize_encoding.mjs": "3779ec8a7adf5d963b0224f9b85d1bc974a2ec2db0e858396b5d3c2c92138a0a", - "https://deno.land/std@0.129.0/node/internal/util.mjs": "684653b962fae84fd2bc08997291b1a50bed09b95dcfa7d35e3c4143163e879a", - "https://deno.land/std@0.129.0/node/internal/util/comparisons.ts": "680b55fe8bdf1613633bc469fa0440f43162c76dbe36af9aa2966310e1bb9f6e", - "https://deno.land/std@0.129.0/node/internal/util/debuglog.ts": "99e91bdf26f6c67861031f684817e1705a5bc300e81346585b396f413387edfb", - "https://deno.land/std@0.129.0/node/internal/util/inspect.mjs": "d1c2569c66a3dab45eec03208f22ad4351482527859c0011a28a6c797288a0aa", - "https://deno.land/std@0.129.0/node/internal/util/types.ts": "b2dacb8f1f5d28a51c4da5c5b75172b7fcf694073ce95ca141323657e18b0c60", - "https://deno.land/std@0.129.0/node/internal/validators.mjs": "a7e82eafb7deb85c332d5f8d9ffef052f46a42d4a121eada4a54232451acc49a", - "https://deno.land/std@0.129.0/node/internal_binding/_libuv_winerror.ts": "801e05c2742ae6cd42a5f0fd555a255a7308a65732551e962e5345f55eedc519", - "https://deno.land/std@0.129.0/node/internal_binding/_node.ts": "e4075ba8a37aef4eb5b592c8e3807c39cb49ca8653faf8e01a43421938076c1b", - "https://deno.land/std@0.129.0/node/internal_binding/_utils.ts": "1c50883b5751a9ea1b38951e62ed63bacfdc9d69ea665292edfa28e1b1c5bd94", - "https://deno.land/std@0.129.0/node/internal_binding/_winerror.ts": "8811d4be66f918c165370b619259c1f35e8c3e458b8539db64c704fbde0a7cd2", - "https://deno.land/std@0.129.0/node/internal_binding/buffer.ts": "722c62b85f966e0777b2d98c021b60e75d7f2c2dabc43413ef37d60dbd13a5d9", - "https://deno.land/std@0.129.0/node/internal_binding/constants.ts": "aff06aac49eda4234bd3a2b0b8e1fbfc67824e281c532ff9960831ab503014cc", - "https://deno.land/std@0.129.0/node/internal_binding/string_decoder.ts": "5cb1863763d1e9b458bc21d6f976f16d9c18b3b3f57eaf0ade120aee38fba227", - "https://deno.land/std@0.129.0/node/internal_binding/types.ts": "4c26fb74ba2e45de553c15014c916df6789529a93171e450d5afb016b4c765e7", - "https://deno.land/std@0.129.0/node/internal_binding/util.ts": "90364292e2bd598ab5d105b48ca49817b6708f2d1d9cbaf08b2b3ab5ca4c90a7", - "https://deno.land/std@0.129.0/node/internal_binding/uv.ts": "3821bc5e676d6955d68f581988c961d77dd28190aba5a9c59f16001a4deb34ba", - "https://deno.land/std@0.129.0/node/util.ts": "7fd6933b37af89a8e64d73dc6ee1732455a59e7e6d0965311fbd73cd634ea630", - "https://deno.land/std@0.129.0/node/util/types.mjs": "f9288198cacd374b41bae7e92a23179d3160f4c0eaf14e19be3a4e7057219a60", - "https://deno.land/std@0.129.0/path/_constants.ts": "df1db3ffa6dd6d1252cc9617e5d72165cd2483df90e93833e13580687b6083c3", - "https://deno.land/std@0.129.0/path/_interface.ts": "ee3b431a336b80cf445441109d089b70d87d5e248f4f90ff906820889ecf8d09", - "https://deno.land/std@0.129.0/path/_util.ts": "c1e9686d0164e29f7d880b2158971d805b6e0efc3110d0b3e24e4b8af2190d2b", - "https://deno.land/std@0.129.0/path/common.ts": "bee563630abd2d97f99d83c96c2fa0cca7cee103e8cb4e7699ec4d5db7bd2633", - "https://deno.land/std@0.129.0/path/glob.ts": "cb5255638de1048973c3e69e420c77dc04f75755524cb3b2e160fe9277d939ee", - "https://deno.land/std@0.129.0/path/mod.ts": "4275129bb766f0e475ecc5246aa35689eeade419d72a48355203f31802640be7", - "https://deno.land/std@0.129.0/path/posix.ts": "663e4a6fe30a145f56aa41a22d95114c4c5582d8b57d2d7c9ed27ad2c47636bb", - "https://deno.land/std@0.129.0/path/separator.ts": "fe1816cb765a8068afb3e8f13ad272351c85cbc739af56dacfc7d93d710fe0f9", - "https://deno.land/std@0.129.0/path/win32.ts": "e7bdf63e8d9982b4d8a01ef5689425c93310ece950e517476e22af10f41a136e", - "https://deno.land/std@0.129.0/streams/conversion.ts": "712585bfa0172a97fb68dd46e784ae8ad59d11b88079d6a4ab098ff42e697d21", - "https://deno.land/std@0.129.0/testing/_diff.ts": "9d849cd6877694152e01775b2d93f9d6b7aef7e24bfe3bfafc4d7a1ac8e9f392", - "https://deno.land/std@0.129.0/testing/asserts.ts": "0a95d9e8076dd3e7f0eeb605a67c148078b4b11f4abcd5eef115b0361b0736a2", - "https://deno.land/std@0.213.0/archive/_common.ts": "85edd5cdd4324833f613c1bc055f8e2f935cc9229c6b3044421268d9959997ef", - "https://deno.land/std@0.213.0/archive/mod.ts": "ee523e70c75984d2e0fa819e46142f4282a61d16e1343704e4b5554b29bbf64b", - "https://deno.land/std@0.213.0/archive/tar.ts": "71ffa23b34301f521c6b2d90923a11e7fe695854bca1332608ab0887870e08e1", - "https://deno.land/std@0.213.0/archive/untar.ts": "7677c136f2188cd8c33363ccaaee6e77d4ca656cca3e2093d08de8f294d4353d", - "https://deno.land/std@0.213.0/assert/assert.ts": "bec068b2fccdd434c138a555b19a2c2393b71dfaada02b7d568a01541e67cdc5", - "https://deno.land/std@0.213.0/assert/assertion_error.ts": "9f689a101ee586c4ce92f52fa7ddd362e86434ffdf1f848e45987dc7689976b8", - "https://deno.land/std@0.213.0/bytes/concat.ts": "9cac3b4376afbef98ff03588eb3cf948e0d1eb6c27cfe81a7651ab6dd3adc54a", - "https://deno.land/std@0.213.0/bytes/copy.ts": "f29c03168853720dfe82eaa57793d0b9e3543ebfe5306684182f0f1e3bfd422a", - "https://deno.land/std@0.213.0/io/_constants.ts": "3c7ad4695832e6e4a32e35f218c70376b62bc78621ef069a4a0a3d55739f8856", - "https://deno.land/std@0.213.0/io/buf_reader.ts": "ccbd43ace0a9eebbd5e1b4765724b79da79d1e28b90c2b08537b99192da4a1f7", - "https://deno.land/std@0.213.0/io/buffer.ts": "79182995c8340ece2fa8763a8da86d282c507e854921d0a4c2ba7425c63609ef", - "https://deno.land/std@0.213.0/io/multi_reader.ts": "ca8a7813208a3393dfaed75894d955fe58a38c21b880e69839a4e0547eadbf61", - "https://deno.land/std@0.213.0/io/read_all.ts": "876c1cb20adea15349c72afc86cecd3573335845ae778967aefb5e55fe5a8a4a", - "https://deno.land/std@0.213.0/io/types.ts": "748bbb3ac96abda03594ef5a0db15ce5450dcc6c0d841c8906f8b10ac8d32c96", - "https://deno.land/x/compress@v0.4.6/deps.ts": "b94bdf2cd48715a108809dffaac47250384acd6d47eae7c5a162521d1367b923", - "https://deno.land/x/compress@v0.4.6/gzip/gzip.ts": "4bf22e9cd3368332928324dd9443ef72cabd05e9234e5a37dd7b3517d50e945e", - "https://deno.land/x/compress@v0.4.6/gzip/gzip_file.ts": "b044ec0df4266c084baa033a4ab5394882e44a86d09d5616636467dcb39c671d", - "https://deno.land/x/compress@v0.4.6/gzip/gzip_stream.ts": "6781cf0e47648e3e5631cba4cc2cd018a24935ce09fdaa86e0cabcf78b5012df", - "https://deno.land/x/compress@v0.4.6/gzip/mod.ts": "4ade8edbe01b54a84f289351e137ebdfc040a74cd616636770cf1724fbf522d1", - "https://deno.land/x/compress@v0.4.6/gzip/writer_gunzip.ts": "5aba34394820b835c414048ac2e15f52d443f1f773ebe61fd2517c938572d616", - "https://deno.land/x/compress@v0.4.6/gzip/writer_gzip.ts": "c7aad0c51ab4f5952c068088186339cfc79a2ee1e057d6e16731b1175f342645", - "https://deno.land/x/compress@v0.4.6/interface.ts": "fc5f87bd208ab8a03a1f65972b11781967c3d21c3d756fe9ae99ca98e10e5780", - "https://deno.land/x/compress@v0.4.6/mod.ts": "ae8b15826334021583a5bd1978c63840f85156ea3635f5941bfc6733aad247e5", - "https://deno.land/x/compress@v0.4.6/tar/mod.ts": "6d9073005e678479908047cbe9e4716e484f80d1f2a1e15d3d6ac92213ffaeba", - "https://deno.land/x/compress@v0.4.6/tgz/mod.ts": "2fd4e99f26b57b0055d4d2f87721682304541ed1ca41bbb49c034d121f936f00", - "https://deno.land/x/compress@v0.4.6/utils/uint8.ts": "9c82e09c065f1f4bc648e3b14df441b43a7960fc7bdb29e9fb8d3a69c7e9d425", - "https://deno.land/x/compress@v0.4.6/zlib/deflate.ts": "e1e3b406dcc3e20021e53cde427b4b9ced752b72df820de73fec17c6e5ba999e", - "https://deno.land/x/compress@v0.4.6/zlib/inflate.ts": "618cc3dd25d202bf6b89d92f3ab2865e7495884cafce950638c77cbc1537aeb1", - "https://deno.land/x/compress@v0.4.6/zlib/mod.ts": "4dca9c1e934b7ab27f31c318abd7bfd39b09be96fd76ba27bd46f3a4e73b4ad0", - "https://deno.land/x/compress@v0.4.6/zlib/zlib/adler32.ts": "e34c7596d63a655755c4b0a44a40d4f9c1d1c4d3b891e5c1f3f840f8939e1940", - "https://deno.land/x/compress@v0.4.6/zlib/zlib/crc32.ts": "b9bc4adaf327d32585205d1176bd52f6453c06dd1040544611d4c869e638119c", - "https://deno.land/x/compress@v0.4.6/zlib/zlib/deflate.ts": "8d1dd88630279313e50deed4fe5feefe8128307cc48fa560e659b5234ab09d83", - "https://deno.land/x/compress@v0.4.6/zlib/zlib/gzheader.ts": "11e6da7383447aae9791308dc2350a809fa341a876a2da396b03a2a31408c20c", - "https://deno.land/x/compress@v0.4.6/zlib/zlib/inffast.ts": "282daf5ea16bb876d26e342f3c24fe1a8ec84640e713a970b02232955a853f86", - "https://deno.land/x/compress@v0.4.6/zlib/zlib/inflate.ts": "76751c1a5b18d70a929fa31ce4959db0bde1b9097bfa1b5ea3b4d1fba2ab92fa", - "https://deno.land/x/compress@v0.4.6/zlib/zlib/inftrees.ts": "8a6d765a5c42bf3b6990060cabbe52e88493f8ce6d082e6e35d97756914cfb8e", - "https://deno.land/x/compress@v0.4.6/zlib/zlib/messages.ts": "c82229bd67ccc3b6162f3aca1c5e7f936e546aa91ac9a9ac4fcfefc3a9dc5ac8", - "https://deno.land/x/compress@v0.4.6/zlib/zlib/status.ts": "5987864d2d43d59bbbfa2e6ef4d5a07284c1d10489cc5843ddf41ac547957ac3", - "https://deno.land/x/compress@v0.4.6/zlib/zlib/trees.ts": "6b65a767646e031e87e7b725ffad0c511fe701f393a01652e1e7ee8884f60fee", - "https://deno.land/x/compress@v0.4.6/zlib/zlib/zstream.ts": "c110fd5919235e317d64933852e24a1bba0126202be592e90e58f7b19315ad93", - "https://deno.land/x/crc32@v0.2.0/mod.ts": "de7a3fa2d4ef24b96fc21e1cc4d2d65d1d2b1dcea92f63960e3e11bfa82df0fa", - "https://deno.land/x/port@1.0.0/mod.ts": "2dc04ce1ccf133ae09205e30b550044c4c6f64a1a7d00ea91c66dbb9f6cc00f5", - "https://deno.land/x/port@1.0.0/types.ts": "42d6ae4147d5d67408d60209da070ddfa79ec8389c6cab1b8002df0cf6c03af6" - }, "workspace": { "dependencies": [ + "jsr:@deno-library/compress@~0.5.5", "jsr:@dldc/chemin@12", "jsr:@dldc/compose@^6.0.2", "jsr:@dldc/erreur@^7.1.1", "jsr:@dldc/stack@7", "jsr:@dldc/zenjson@^3.0.1", + "jsr:@openjs/port-free@1", "jsr:@std/assert@^1.0.11", "jsr:@std/expect@^1.0.13", "jsr:@std/http@^1.0.13" diff --git a/tests/compress.test.ts b/tests/compress.test.ts index 5f2b145..3ebf612 100644 --- a/tests/compress.test.ts +++ b/tests/compress.test.ts @@ -1,3 +1,4 @@ +import { gunzip, inflate } from "@deno-library/compress"; import { assert } from "@std/assert"; import { expect } from "@std/expect"; import { @@ -8,7 +9,6 @@ import { json, ZenResponse, } from "../mod.ts"; -import { gunzip, inflate } from "./deps.ts"; import { expectHeaders } from "./utils/expectHeaders.ts"; import { request } from "./utils/request.ts"; import { streamSizeReader } from "./utils/streamSizeReader.ts"; diff --git a/tests/cookies.test.ts b/tests/cookies.test.ts index 9cd069a..e0c21c5 100644 --- a/tests/cookies.test.ts +++ b/tests/cookies.test.ts @@ -19,7 +19,7 @@ Deno.test("should set the Set-Cookie header", async () => { value: "T55YTRR55554", }]); }); - const { close, url, fetch } = mountServer(app); + const { close, url, fetch } = await mountServer(app); const res = await fetch(url); expectHeaders( res, @@ -39,7 +39,7 @@ Deno.test("should set the Set-Cookie header using Manager", async () => { return noContent(); }), ); - const { close, url, fetch } = mountServer(app); + const { close, url, fetch } = await mountServer(app); const res = await fetch(url); expectHeaders( res, @@ -61,7 +61,7 @@ Deno.test("should set two Set-Cookie header using Manager", async () => { return noContent(); }), ); - const { close, url, fetch } = mountServer(app); + const { close, url, fetch } = await mountServer(app); const res = await fetch(url); expectHeaders( res, @@ -83,7 +83,7 @@ Deno.test("should return the same result as koa", async () => { }]); }); - const { close, url, fetch } = mountServer(app); + const { close, url, fetch } = await mountServer(app); const res = await fetch(url); @@ -107,7 +107,7 @@ Deno.test("should return the same result as koa when deleting cookie", async () expires: new Date(0), }]); }); - const { close, url, fetch } = mountServer(app); + const { close, url, fetch } = await mountServer(app); const res = await fetch(url); expectHeaders( @@ -132,7 +132,7 @@ Deno.test("Cookie manager should set and delete cookies", async () => { }), ); - const { close, url, fetch } = mountServer(app); + const { close, url, fetch } = await mountServer(app); const res = await fetch(url); expectHeaders( @@ -162,7 +162,7 @@ Deno.test("Cookies should not be set on error response", async () => { }, ), ); - const { url, close, fetch } = mountServer(app); + const { url, close, fetch } = await mountServer(app); const res = await fetch(url); expectHeaders( res, diff --git a/tests/cors.actual.test.ts b/tests/cors.actual.test.ts index f5eeac8..5fa1b67 100644 --- a/tests/cors.actual.test.ts +++ b/tests/cors.actual.test.ts @@ -18,7 +18,7 @@ Deno.test("create server with cors does not throw", () => { Deno.test("simple text response", async () => { const handler = createCorsHandler(); - const { url, close, fetch } = mountServer(handler); + const { url, close, fetch } = await mountServer(handler); const res = await fetch(url); expectHeaders( res, @@ -38,7 +38,7 @@ Deno.test("6.1.1 Does not set headers if Origin is missing", async () => { const app = createCorsHandler({ allowOrigin: ["http://api.myapp.com", "http://www.myapp.com"], }); - const { url, close, fetch } = mountServer(app); + const { url, close, fetch } = await mountServer(app); const res = await fetch(url); expectHeaders( res, @@ -58,7 +58,7 @@ Deno.test("6.1.2 Does not set headers if Origin does not match", async () => { const app = createCorsHandler({ allowOrigin: ["http://api.myapp.com", "http://www.myapp.com"], }); - const { url, close, fetch } = mountServer(app); + const { url, close, fetch } = await mountServer(app); const res = await fetch(url, { headers: { Origin: "http://random-website.com", @@ -82,7 +82,7 @@ Deno.test("6.1.3 Sets Allow-Origin headers if the Origin matches", async () => { const app = createCorsHandler({ allowOrigin: ["http://api.myapp.com", "http://www.myapp.com"], }); - const { url, close, fetch } = mountServer(app); + const { url, close, fetch } = await mountServer(app); const res = await fetch(url, { headers: { Origin: "http://api.myapp.com", @@ -107,7 +107,7 @@ Deno.test("Sets Allow-Origin headers if allowOrigin is true (wildcard)", async ( const app = createCorsHandler({ allowOrigin: true, }); - const { url, close, fetch } = mountServer(app); + const { url, close, fetch } = await mountServer(app); const res = await fetch(url, { headers: { Origin: "http://api.myapp.com", @@ -133,7 +133,7 @@ Deno.test("6.1.3 Sets Access-Control-Allow-Credentials header if configured", as allowOrigin: ["http://api.myapp.com"], allowCredentials: true, }); - const { url, close, fetch } = mountServer(app); + const { url, close, fetch } = await mountServer(app); const res = await fetch(url, { headers: { Origin: "http://api.myapp.com", @@ -159,7 +159,7 @@ Deno.test("6.1.4 Does not set exposed headers if empty", async () => { const app = createCorsHandler({ allowOrigin: ["http://api.myapp.com", "http://www.myapp.com"], }); - const { url, close, fetch } = mountServer(app); + const { url, close, fetch } = await mountServer(app); const res = await fetch(url, { headers: { Origin: "http://api.myapp.com", @@ -185,7 +185,7 @@ Deno.test("6.1.4 Sets exposed headers if configured", async () => { allowOrigin: ["http://api.myapp.com", "http://www.myapp.com"], exposeHeaders: ["HeaderA", "HeaderB"], }); - const { url, close, fetch } = mountServer(app); + const { url, close, fetch } = await mountServer(app); const res = await fetch(url, { headers: { Origin: "http://api.myapp.com", diff --git a/tests/cors.package.test.ts b/tests/cors.package.test.ts index fde039b..d8d87ed 100644 --- a/tests/cors.package.test.ts +++ b/tests/cors.package.test.ts @@ -27,7 +27,7 @@ Deno.test("create a server with CorsPackage does not throw", () => { Deno.test("response to actual request", async () => { const app = createCorsHandler(); - const { url, close, fetch } = mountServer(app); + const { url, close, fetch } = await mountServer(app); const res = await fetch(url, { headers: { Origin: "http://api.myapp.com", @@ -50,7 +50,7 @@ Deno.test("response to actual request", async () => { Deno.test("response to preflight request", async () => { const app = createCorsHandler(); - const { url, close, fetch } = mountServer(app); + const { url, close, fetch } = await mountServer(app); const res = await fetch(url, { method: "OPTIONS", headers: { @@ -86,7 +86,7 @@ Deno.test("handle error", async () => { }, ), ); - const { url, close, fetch } = mountServer(handler); + const { url, close, fetch } = await mountServer(handler); const res = await fetch(url, { headers: { Origin: "http://api.myapp.com", @@ -113,7 +113,7 @@ Deno.test("handle error on preflight", async () => { throw createNotFound(); }), ); - const { url, close, fetch } = mountServer(handler); + const { url, close, fetch } = await mountServer(handler); const res = await fetch(url, { method: "OPTIONS", headers: { diff --git a/tests/cors.preflight.test.ts b/tests/cors.preflight.test.ts index f3f6741..38b0076 100644 --- a/tests/cors.preflight.test.ts +++ b/tests/cors.preflight.test.ts @@ -32,7 +32,7 @@ Deno.test("6.2.1 Does not set headers if Origin is missing", async () => { const app = createCorsHandler({ allowOrigin: ["http://api.myapp.com", "http://www.myapp.com"], }); - const { url, close, fetch } = mountServer(app); + const { url, close, fetch } = await mountServer(app); const res = await fetch(url, { headers: {}, }); @@ -54,7 +54,7 @@ Deno.test("6.2.2 Does not set headers if Origin does not match", async () => { const app = createCorsHandler({ allowOrigin: ["http://api.myapp.com", "http://www.myapp.com"], }); - const { url, close, fetch } = mountServer(app); + const { url, close, fetch } = await mountServer(app); const res = await fetch(url, { method: "POST", headers: { @@ -79,7 +79,7 @@ Deno.test("6.2.3 Does not set headers if Access-Control-Request-Method is missin const app = createCorsHandler({ allowOrigin: ["http://api.myapp.com", "http://www.myapp.com"], }); - const { url, close, fetch } = mountServer(app); + const { url, close, fetch } = await mountServer(app); const res = await fetch(url, { method: "POST", headers: { @@ -112,7 +112,7 @@ Deno.test("6.2.6 Does not set headers if Access-Control-Request-Headers does not allowOrigin: ["http://api.myapp.com", "http://www.myapp.com"], allowHeaders: ["API-Token"], }); - const { url, close, fetch } = mountServer(app); + const { url, close, fetch } = await mountServer(app); const res = await fetch(url, { method: "POST", headers: { @@ -138,7 +138,7 @@ Deno.test("6.2.7 Set the Allow-Origin header if it matches", async () => { const app = createCorsHandler({ allowOrigin: ["http://api.myapp.com", "http://www.myapp.com"], }); - const { url, close, fetch } = mountServer(app); + const { url, close, fetch } = await mountServer(app); const res = await fetch(url, { method: "OPTIONS", headers: { diff --git a/tests/deps.ts b/tests/deps.ts deleted file mode 100644 index f5e6b6f..0000000 --- a/tests/deps.ts +++ /dev/null @@ -1,6 +0,0 @@ -export { - deflate, - gunzip, - inflate, -} from "https://deno.land/x/compress@v0.4.6/mod.ts"; -export { getAvailablePortSync } from "https://deno.land/x/port@1.0.0/mod.ts"; diff --git a/tests/index.test.ts b/tests/index.test.ts index f54c824..c5d910c 100644 --- a/tests/index.test.ts +++ b/tests/index.test.ts @@ -20,7 +20,7 @@ Deno.test("create hanlder without crashing", () => { Deno.test("simple text response", async () => { const handler = createHandler(() => ZenResponse.create("Hey")); - const { url, close, fetch } = mountServer(handler); + const { url, close, fetch } = await mountServer(handler); const res = await fetch(url); expect(await res.text()).toBe("Hey"); @@ -40,7 +40,7 @@ Deno.test("simple text response", async () => { Deno.test("send two requests", async () => { const handler = createHandler(() => ZenResponse.create("Hey")); - const { url, close, fetch } = mountServer(handler); + const { url, close, fetch } = await mountServer(handler); const res = await fetch(url); expectHeaders( @@ -68,7 +68,7 @@ Deno.test("send two requests", async () => { Deno.test("response to arbitrary path", async () => { const handler = createHandler(() => ZenResponse.create("Hey")); - const { url, close, fetch } = mountServer(handler); + const { url, close, fetch } = await mountServer(handler); const res = await fetch(`${url}${"/some/path"}`); expectHeaders( @@ -87,7 +87,7 @@ Deno.test("response to arbitrary path", async () => { Deno.test("response to post method", async () => { const handler = createHandler(() => ZenResponse.create("Hey")); - const { url, close, fetch } = mountServer(handler); + const { url, close, fetch } = await mountServer(handler); const res = await fetch(url, { method: HttpMethod.POST }); expectHeaders( @@ -106,7 +106,7 @@ Deno.test("response to post method", async () => { Deno.test("head request return 204 & empty body", async () => { const handler = createHandler(() => noContent()); - const { url, close, fetch } = mountServer(handler); + const { url, close, fetch } = await mountServer(handler); const res = await fetch(url, { method: HttpMethod.HEAD, @@ -128,7 +128,7 @@ Deno.test("throw HttpError return an error", async () => { throw createNotFound(); }), ); - const { close, url, fetch } = mountServer(handler); + const { close, url, fetch } = await mountServer(handler); const res = await fetch(url); expectHeaders( res, @@ -154,7 +154,7 @@ Deno.test("throw return an error", async () => { }, ), ); - const { close, url, fetch } = mountServer(handler); + const { close, url, fetch } = await mountServer(handler); const res = await fetch(url); expectHeaders( res, diff --git a/tests/json.test.ts b/tests/json.test.ts index dd1b7d5..1a50d0e 100644 --- a/tests/json.test.ts +++ b/tests/json.test.ts @@ -40,7 +40,7 @@ Deno.test("parse JSON body", async () => { }, ), ); - const { close, url, fetch } = mountServer(handler); + const { close, url, fetch } = await mountServer(handler); const res = await fetch(url, { method: HttpMethod.POST, body: JSON.stringify({ name: "Perceval", alias: "Provençal le Gaulois" }), @@ -70,7 +70,7 @@ Deno.test("JsonPackage handle JsonResponse", async () => { return json({ foo: "bar" }); }), ); - const { close, url, fetch } = mountServer(handler); + const { close, url, fetch } = await mountServer(handler); const res5 = await fetch(url); expectHeaders( res5, @@ -88,7 +88,7 @@ Deno.test("JsonPackage handle JsonResponse", async () => { Deno.test("JsonPackage handle no response", async () => { const handler = createHandler(compose(JsonPackage())); - const { close, url, fetch } = mountServer(handler); + const { close, url, fetch } = await mountServer(handler); const res1 = await fetch(url); expectHeaders( @@ -116,7 +116,7 @@ Deno.test("JsonPackage convert text to Json", async () => { return json("Hello"); }), ); - const { close, url, fetch } = mountServer(handler); + const { close, url, fetch } = await mountServer(handler); const res2 = await fetch(url); expectHeaders( @@ -140,7 +140,7 @@ Deno.test("JsonPackage handle HttpError and convert them to json", async () => { throw createNotFound(); }), ); - const { close, url, fetch } = mountServer(handler); + const { close, url, fetch } = await mountServer(handler); const res3 = await fetch(url); expectHeaders( @@ -168,7 +168,7 @@ Deno.test("JsonPackage handle Error and convert them to json", async () => { throw new Error("Oops"); }), ); - const { close, url, fetch } = mountServer(handler); + const { close, url, fetch } = await mountServer(handler); const res4 = await fetch(url); expectHeaders( @@ -197,7 +197,7 @@ Deno.test("JsonPackage works with Cookies", async () => { return json({ foo: "bar" }); }), ); - const { close, url, fetch } = mountServer(handler); + const { close, url, fetch } = await mountServer(handler); const res = await fetch(url); expectHeaders( @@ -223,7 +223,7 @@ Deno.test("JsonPackage can read Json body", async () => { return json(body); }), ); - const { close, url, fetch } = mountServer(handler); + const { close, url, fetch } = await mountServer(handler); const res = await fetch(url, { headers: { "content-type": "application/json" }, @@ -253,7 +253,7 @@ Deno.test("JsonPackage can read Json with Axio PUT", async () => { return json(body); }), ); - const { close, url, fetch } = mountServer(handler); + const { close, url, fetch } = await mountServer(handler); const res = await fetch(url, { headers: { diff --git a/tests/real-life-01.test.ts b/tests/real-life-01.test.ts index 81c1e34..7d20b24 100644 --- a/tests/real-life-01.test.ts +++ b/tests/real-life-01.test.ts @@ -47,7 +47,7 @@ Deno.test("real life", async () => { ), ); - const { url, close, fetch } = mountServer(handler); + const { url, close, fetch } = await mountServer(handler); const res = await fetch(url); expectHeaders( diff --git a/tests/real-life-02.test.ts b/tests/real-life-02.test.ts index 2cfb4cd..b4a6f87 100644 --- a/tests/real-life-02.test.ts +++ b/tests/real-life-02.test.ts @@ -43,7 +43,7 @@ Deno.test("real life 2", async () => { ), ); - const { url, close, fetch } = mountServer(app); + const { url, close, fetch } = await mountServer(app); const res = await fetch(url); expectHeaders( diff --git a/tests/utils/mountServer.ts b/tests/utils/mountServer.ts index fbc1545..c1de200 100644 --- a/tests/utils/mountServer.ts +++ b/tests/utils/mountServer.ts @@ -1,18 +1,22 @@ -import { getAvailablePortSync } from "../deps.ts"; +import { getPort } from "@openjs/port-free"; interface MountedServer { url: string; port: number; close: () => Promise; - fetch: typeof fetch; + fetch: ( + input: string | URL | globalThis.Request, + init?: RequestInit, + ) => Promise; } -export function mountServer(handler: Deno.ServeHandler): MountedServer { - const port = getAvailablePortSync(); +export async function mountServer( + handler: Deno.ServeHandler, +): Promise { + const port = await getPort(); if (!port) { throw new Error("No available port"); } - console.log(`Mounting server on port ${port}`); const server = Deno.serve({ port, onListen: () => {}, diff --git a/tests/zenjson.test.ts b/tests/zenjson.test.ts index 4ceab09..3249cc3 100644 --- a/tests/zenjson.test.ts +++ b/tests/zenjson.test.ts @@ -22,7 +22,7 @@ Deno.test("Send zenjson response", async () => { ), ); - const { close, url, fetch } = mountServer(handler); + const { close, url, fetch } = await mountServer(handler); const res = await fetch(url); expectHeaders(