diff options
Diffstat (limited to 'cli/tests')
-rw-r--r-- | cli/tests/integration/lsp_tests.rs | 292 | ||||
-rw-r--r-- | cli/tests/testdata/run/unstable_http.disabled.out | 4 | ||||
-rw-r--r-- | cli/tests/testdata/run/unstable_http.enabled.out | 4 | ||||
-rw-r--r-- | cli/tests/testdata/run/unstable_http.js | 2 | ||||
-rw-r--r-- | cli/tests/unit/http_test.ts | 157 |
5 files changed, 41 insertions, 418 deletions
diff --git a/cli/tests/integration/lsp_tests.rs b/cli/tests/integration/lsp_tests.rs index 2fc3d29e8..ba44c670d 100644 --- a/cli/tests/integration/lsp_tests.rs +++ b/cli/tests/integration/lsp_tests.rs @@ -9059,12 +9059,27 @@ fn lsp_workspace_symbol() { "text": "export class B {\n fieldC: string;\n fieldD: string;\n}\n", } })); - let res = client.write_request( + let mut res = client.write_request( "workspace/symbol", json!({ "query": "field" }), ); + + // Replace `range` fields with `null` values. These are not important + // for assertion and require to be updated if we change unstable APIs. + for obj in res.as_array_mut().unwrap().iter_mut() { + *obj + .as_object_mut() + .unwrap() + .get_mut("location") + .unwrap() + .as_object_mut() + .unwrap() + .get_mut("range") + .unwrap() = Value::Null; + } + assert_eq!( res, json!([ @@ -9073,16 +9088,7 @@ fn lsp_workspace_symbol() { "kind": 8, "location": { "uri": "file:///a/file.ts", - "range": { - "start": { - "line": 1, - "character": 2 - }, - "end": { - "line": 1, - "character": 17 - } - } + "range": null, }, "containerName": "A" }, @@ -9091,16 +9097,7 @@ fn lsp_workspace_symbol() { "kind": 8, "location": { "uri": "file:///a/file.ts", - "range": { - "start": { - "line": 2, - "character": 2 - }, - "end": { - "line": 2, - "character": 17 - } - } + "range": null, }, "containerName": "A" }, @@ -9109,16 +9106,7 @@ fn lsp_workspace_symbol() { "kind": 8, "location": { "uri": "file:///a/file_01.ts", - "range": { - "start": { - "line": 1, - "character": 2 - }, - "end": { - "line": 1, - "character": 17 - } - } + "range": null, }, "containerName": "B" }, @@ -9127,16 +9115,7 @@ fn lsp_workspace_symbol() { "kind": 8, "location": { "uri": "file:///a/file_01.ts", - "range": { - "start": { - "line": 2, - "character": 2 - }, - "end": { - "line": 2, - "character": 17 - } - } + "range": null, }, "containerName": "B" }, @@ -9145,16 +9124,7 @@ fn lsp_workspace_symbol() { "kind": 6, "location": { "uri": "deno:/asset/lib.deno.unstable.d.ts", - "range": { - "start": { - "line": 3165, - "character": 4 - }, - "end": { - "line": 3165, - "character": 55 - } - } + "range": null, }, "containerName": "CalendarProtocol" }, @@ -9163,16 +9133,7 @@ fn lsp_workspace_symbol() { "kind": 6, "location": { "uri": "deno:/asset/lib.deno.unstable.d.ts", - "range": { - "start": { - "line": 3335, - "character": 4 - }, - "end": { - "line": 3335, - "character": 47 - } - } + "range": null, }, "containerName": "Calendar" }, @@ -9181,16 +9142,7 @@ fn lsp_workspace_symbol() { "kind": 11, "location": { "uri": "deno:/asset/lib.decorators.d.ts", - "range": { - "start": { - "line": 343, - "character": 0 - }, - "end": { - "line": 385, - "character": 1 - } - } + "range": null, }, "containerName": "" }, @@ -9199,16 +9151,7 @@ fn lsp_workspace_symbol() { "kind": 6, "location": { "uri": "deno:/asset/lib.deno.unstable.d.ts", - "range": { - "start": { - "line": 3143, - "character": 4 - }, - "end": { - "line": 3146, - "character": 26 - } - } + "range": null, }, "containerName": "CalendarProtocol" }, @@ -9217,16 +9160,7 @@ fn lsp_workspace_symbol() { "kind": 6, "location": { "uri": "deno:/asset/lib.deno.unstable.d.ts", - "range": { - "start": { - "line": 3313, - "character": 4 - }, - "end": { - "line": 3316, - "character": 26 - } - } + "range": null, }, "containerName": "Calendar" }, @@ -9235,16 +9169,7 @@ fn lsp_workspace_symbol() { "kind": 6, "location": { "uri": "deno:/asset/lib.deno.unstable.d.ts", - "range": { - "start": { - "line": 3439, - "character": 4 - }, - "end": { - "line": 3439, - "character": 39 - } - } + "range": null, }, "containerName": "PlainDate" }, @@ -9253,16 +9178,7 @@ fn lsp_workspace_symbol() { "kind": 6, "location": { "uri": "deno:/asset/lib.deno.unstable.d.ts", - "range": { - "start": { - "line": 3602, - "character": 4 - }, - "end": { - "line": 3602, - "character": 43 - } - } + "range": null, }, "containerName": "PlainDateTime" }, @@ -9271,16 +9187,7 @@ fn lsp_workspace_symbol() { "kind": 6, "location": { "uri": "deno:/asset/lib.deno.unstable.d.ts", - "range": { - "start": { - "line": 3651, - "character": 4 - }, - "end": { - "line": 3651, - "character": 39 - } - } + "range": null, }, "containerName": "PlainMonthDay" }, @@ -9289,16 +9196,7 @@ fn lsp_workspace_symbol() { "kind": 6, "location": { "uri": "deno:/asset/lib.deno.unstable.d.ts", - "range": { - "start": { - "line": 3770, - "character": 4 - }, - "end": { - "line": 3770, - "character": 39 - } - } + "range": null, }, "containerName": "PlainTime" }, @@ -9307,16 +9205,7 @@ fn lsp_workspace_symbol() { "kind": 6, "location": { "uri": "deno:/asset/lib.deno.unstable.d.ts", - "range": { - "start": { - "line": 3923, - "character": 4 - }, - "end": { - "line": 3923, - "character": 39 - } - } + "range": null, }, "containerName": "PlainYearMonth" }, @@ -9325,16 +9214,7 @@ fn lsp_workspace_symbol() { "kind": 6, "location": { "uri": "deno:/asset/lib.deno.unstable.d.ts", - "range": { - "start": { - "line": 4082, - "character": 4 - }, - "end": { - "line": 4082, - "character": 43 - } - } + "range": null, }, "containerName": "ZonedDateTime" }, @@ -9343,16 +9223,7 @@ fn lsp_workspace_symbol() { "kind": 6, "location": { "uri": "deno:/asset/lib.deno.unstable.d.ts", - "range": { - "start": { - "line": 3166, - "character": 4 - }, - "end": { - "line": 3169, - "character": 31 - } - } + "range": null, }, "containerName": "CalendarProtocol" }, @@ -9361,16 +9232,7 @@ fn lsp_workspace_symbol() { "kind": 6, "location": { "uri": "deno:/asset/lib.deno.unstable.d.ts", - "range": { - "start": { - "line": 3336, - "character": 4 - }, - "end": { - "line": 3339, - "character": 31 - } - } + "range": null, }, "containerName": "Calendar" }, @@ -9379,16 +9241,7 @@ fn lsp_workspace_symbol() { "kind": 6, "location": { "uri": "deno:/asset/lib.deno.unstable.d.ts", - "range": { - "start": { - "line": 3151, - "character": 4 - }, - "end": { - "line": 3154, - "character": 30 - } - } + "range": null, }, "containerName": "CalendarProtocol" }, @@ -9397,16 +9250,7 @@ fn lsp_workspace_symbol() { "kind": 6, "location": { "uri": "deno:/asset/lib.deno.unstable.d.ts", - "range": { - "start": { - "line": 3321, - "character": 4 - }, - "end": { - "line": 3324, - "character": 30 - } - } + "range": null, }, "containerName": "Calendar" }, @@ -9415,16 +9259,7 @@ fn lsp_workspace_symbol() { "kind": 5, "location": { "uri": "deno:/asset/lib.deno.unstable.d.ts", - "range": { - "start": { - "line": 3355, - "character": 2 - }, - "end": { - "line": 3360, - "character": 4 - } - } + "range": null, }, "containerName": "Temporal" }, @@ -9433,16 +9268,7 @@ fn lsp_workspace_symbol() { "kind": 5, "location": { "uri": "deno:/asset/lib.deno.unstable.d.ts", - "range": { - "start": { - "line": 3466, - "character": 2 - }, - "end": { - "line": 3477, - "character": 4 - } - } + "range": null, }, "containerName": "Temporal" }, @@ -9451,16 +9277,7 @@ fn lsp_workspace_symbol() { "kind": 5, "location": { "uri": "deno:/asset/lib.deno.unstable.d.ts", - "range": { - "start": { - "line": 3671, - "character": 2 - }, - "end": { - "line": 3678, - "character": 4 - } - } + "range": null, }, "containerName": "Temporal" }, @@ -9469,16 +9286,7 @@ fn lsp_workspace_symbol() { "kind": 6, "location": { "uri": "deno:/asset/lib.deno.unstable.d.ts", - "range": { - "start": { - "line": 3147, - "character": 4 - }, - "end": { - "line": 3150, - "character": 31 - } - } + "range": null, }, "containerName": "CalendarProtocol" }, @@ -9487,16 +9295,7 @@ fn lsp_workspace_symbol() { "kind": 6, "location": { "uri": "deno:/asset/lib.deno.unstable.d.ts", - "range": { - "start": { - "line": 3317, - "character": 4 - }, - "end": { - "line": 3320, - "character": 31 - } - } + "range": null, }, "containerName": "Calendar" }, @@ -9505,16 +9304,7 @@ fn lsp_workspace_symbol() { "kind": 5, "location": { "uri": "deno:/asset/lib.deno.unstable.d.ts", - "range": { - "start": { - "line": 3952, - "character": 2 - }, - "end": { - "line": 3965, - "character": 4 - } - } + "range": null, }, "containerName": "Temporal" } diff --git a/cli/tests/testdata/run/unstable_http.disabled.out b/cli/tests/testdata/run/unstable_http.disabled.out index 63a6c83c5..6eb83832e 100644 --- a/cli/tests/testdata/run/unstable_http.disabled.out +++ b/cli/tests/testdata/run/unstable_http.disabled.out @@ -4,10 +4,6 @@ main undefined main undefined main undefined main undefined -main undefined -main undefined -worker undefined -worker undefined worker undefined worker undefined worker undefined diff --git a/cli/tests/testdata/run/unstable_http.enabled.out b/cli/tests/testdata/run/unstable_http.enabled.out index 558f1f542..4f3c65625 100644 --- a/cli/tests/testdata/run/unstable_http.enabled.out +++ b/cli/tests/testdata/run/unstable_http.enabled.out @@ -3,14 +3,10 @@ main [Function: createHttpClient] main [class HttpConn] main Symbol("[[associated_ws]]") main [Function: serve] -main [Function: upgradeHttp] main [Function: upgradeWebSocket] -main [Function: upgradeHttp] worker [class HttpClient] worker [Function: createHttpClient] worker [class HttpConn] worker Symbol("[[associated_ws]]") worker [Function: serve] -worker [Function: upgradeHttp] worker [Function: upgradeWebSocket] -worker [Function: upgradeHttp] diff --git a/cli/tests/testdata/run/unstable_http.js b/cli/tests/testdata/run/unstable_http.js index 012519657..1a3ddb2d3 100644 --- a/cli/tests/testdata/run/unstable_http.js +++ b/cli/tests/testdata/run/unstable_http.js @@ -5,9 +5,7 @@ console.log(scope, Deno.createHttpClient); console.log(scope, Deno.http?.HttpConn); console.log(scope, Deno.http?._ws); console.log(scope, Deno.http?.serve); -console.log(scope, Deno.http?.upgradeHttp); console.log(scope, Deno.http?.upgradeWebSocket); -console.log(scope, Deno.upgradeHttp); if (scope === "worker") { postMessage("done"); diff --git a/cli/tests/unit/http_test.ts b/cli/tests/unit/http_test.ts index 7d1f8997d..bd4c8da09 100644 --- a/cli/tests/unit/http_test.ts +++ b/cli/tests/unit/http_test.ts @@ -1,7 +1,6 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. import { Buffer, BufReader, BufWriter } from "../../../test_util/std/io/mod.ts"; import { TextProtoReader } from "../testdata/run/textproto.ts"; -import { serve, serveTls } from "../../../test_util/std/http/server.ts"; import { assert, assertEquals, @@ -2181,162 +2180,6 @@ Deno.test({ }, }); -Deno.test("upgradeHttp tcp", async () => { - async function client() { - const tcpConn = await Deno.connect({ port: listenPort }); - await tcpConn.write( - new TextEncoder().encode( - "CONNECT server.example.com:80 HTTP/1.1\r\n\r\nbla bla bla\nbla bla\nbla\n", - ), - ); - setTimeout(async () => { - await tcpConn.write( - new TextEncoder().encode( - "bla bla bla\nbla bla\nbla\n", - ), - ); - tcpConn.close(); - }, 500); - } - - const abortController = new AbortController(); - const signal = abortController.signal; - - const server = serve((req) => { - const p = Deno.upgradeHttp(req); - - (async () => { - const [conn, firstPacket] = await p; - const buf = new Uint8Array(1024); - const firstPacketText = new TextDecoder().decode(firstPacket); - assertEquals(firstPacketText, "bla bla bla\nbla bla\nbla\n"); - const n = await conn.read(buf); - assert(n != null); - const secondPacketText = new TextDecoder().decode(buf.slice(0, n)); - assertEquals(secondPacketText, "bla bla bla\nbla bla\nbla\n"); - abortController.abort(); - conn.close(); - })(); - - return new Response(null, { status: 101 }); - }, { port: listenPort, signal }); - - await Promise.all([server, client()]); -}); - -Deno.test( - "upgradeHttp tls", - { permissions: { net: true, read: true } }, - async () => { - async function client() { - const caCerts = [ - await Deno.readTextFile("cli/tests/testdata/tls/RootCA.pem"), - ]; - const tlsConn = await Deno.connectTls({ - hostname: "localhost", - port: listenPort, - caCerts, - }); - await tlsConn.write( - new TextEncoder().encode( - "CONNECT server.example.com:80 HTTP/1.1\r\n\r\nbla bla bla\nbla bla\nbla\n", - ), - ); - setTimeout(async () => { - await tlsConn.write( - new TextEncoder().encode( - "bla bla bla\nbla bla\nbla\n", - ), - ); - tlsConn.close(); - }, 500); - } - - const abortController = new AbortController(); - const signal = abortController.signal; - const certFile = "cli/tests/testdata/tls/localhost.crt"; - const keyFile = "cli/tests/testdata/tls/localhost.key"; - - const server = serveTls((req) => { - const p = Deno.upgradeHttp(req); - - (async () => { - const [conn, firstPacket] = await p; - const buf = new Uint8Array(1024); - const firstPacketText = new TextDecoder().decode(firstPacket); - assertEquals(firstPacketText, "bla bla bla\nbla bla\nbla\n"); - const n = await conn.read(buf); - assert(n != null); - const secondPacketText = new TextDecoder().decode(buf.slice(0, n)); - assertEquals(secondPacketText, "bla bla bla\nbla bla\nbla\n"); - abortController.abort(); - conn.close(); - })(); - - return new Response(null, { status: 101 }); - }, { hostname: "localhost", port: listenPort, signal, keyFile, certFile }); - - await Promise.all([server, client()]); - }, -); - -Deno.test("upgradeHttp unix", { - permissions: { read: true, write: true }, - ignore: Deno.build.os === "windows", -}, async () => { - const filePath = tmpUnixSocketPath(); - const { promise, resolve } = Promise.withResolvers<void>(); - - async function client() { - const unixConn = await Deno.connect({ path: filePath, transport: "unix" }); - await unixConn.write( - new TextEncoder().encode( - "CONNECT server.example.com:80 HTTP/1.1\r\n\r\nbla bla bla\nbla bla\nbla\n", - ), - ); - setTimeout(async () => { - await unixConn.write( - new TextEncoder().encode( - "bla bla bla\nbla bla\nbla\n", - ), - ); - unixConn.close(); - resolve(); - }, 500); - await promise; - } - - const server = (async () => { - const listener = Deno.listen({ path: filePath, transport: "unix" }); - const conn = await listener.accept(); - listener.close(); - const httpConn = Deno.serveHttp(conn); - const reqEvent = await httpConn.nextRequest(); - assert(reqEvent); - const { request, respondWith } = reqEvent; - const p = Deno.upgradeHttp(request); - - const promise = (async () => { - const [conn, firstPacket] = await p; - const buf = new Uint8Array(1024); - const firstPacketText = new TextDecoder().decode(firstPacket); - assertEquals(firstPacketText, "bla bla bla\nbla bla\nbla\n"); - const n = await conn.read(buf); - assert(n != null); - const secondPacketText = new TextDecoder().decode(buf.slice(0, n)); - assertEquals(secondPacketText, "bla bla bla\nbla bla\nbla\n"); - conn.close(); - })(); - - const resp = new Response(null, { status: 101 }); - await respondWith(resp); - await promise; - httpConn!.close(); - })(); - - await Promise.all([server, client()]); -}); - Deno.test( { permissions: { net: true } }, async function httpServerReadLargeBodyWithContentLength() { |