From b42a12ad4e2cba01729debd580639ee2007119d7 Mon Sep 17 00:00:00 2001 From: Corentin Leruth Date: Sun, 26 Jun 2022 15:48:14 +0200 Subject: [PATCH] tests: fix tests on windows --- .../__tests__/textDocument-codeAction.test.ts | 3 +- .../e2e/__tests__/workspace-symbol.test.ts | 180 +++++++++--------- 2 files changed, 96 insertions(+), 87 deletions(-) diff --git a/ocaml-lsp-server/test/e2e/__tests__/textDocument-codeAction.test.ts b/ocaml-lsp-server/test/e2e/__tests__/textDocument-codeAction.test.ts index 982245b5d..d26a67472 100644 --- a/ocaml-lsp-server/test/e2e/__tests__/textDocument-codeAction.test.ts +++ b/ocaml-lsp-server/test/e2e/__tests__/textDocument-codeAction.test.ts @@ -1,5 +1,6 @@ import outdent from "outdent"; import * as path from "path"; +import { URI } from "vscode-uri"; import * as LanguageServer from "../src/LanguageServer"; import * as Protocol from "vscode-languageserver-protocol"; import * as Types from "vscode-languageserver-types"; @@ -237,7 +238,7 @@ let f (x : t) = x it("opens the implementation if not in store", async () => { let testWorkspacePath = path.join(__dirname, "declaration_files/"); let intfFilepath = path.join(testWorkspacePath, "lib.mli"); - let intfUri = "file://" + intfFilepath; + let intfUri = URI.file(intfFilepath).toString(); openDocument("", intfUri); let start = Types.Position.create(0, 0); let end = Types.Position.create(0, 0); diff --git a/ocaml-lsp-server/test/e2e/__tests__/workspace-symbol.test.ts b/ocaml-lsp-server/test/e2e/__tests__/workspace-symbol.test.ts index 0b7b166c8..7d77fa570 100644 --- a/ocaml-lsp-server/test/e2e/__tests__/workspace-symbol.test.ts +++ b/ocaml-lsp-server/test/e2e/__tests__/workspace-symbol.test.ts @@ -3,6 +3,7 @@ import * as child_process from "child_process"; import * as Types from "vscode-languageserver-types"; import * as Protocol from "vscode-languageserver-protocol"; import * as LanguageServer from "./../src/LanguageServer"; +import { URI } from "vscode-uri"; let createWorkspaces = (names: string[]) => { let createSingleWorkspace = (name: string) => { @@ -27,8 +28,15 @@ let createWorkspaces = (names: string[]) => { : ""; return `${symbol.name} ${symbol.kind} ${workspaces.reduce( - (uri, { path, name }) => uri.replace(path, `<${name}>`), - symbol.location.uri, + (acc, { path: workspacePath, name: workspaceName }) => { + const uri = symbol.location.uri; + const fsPath = URI.parse(uri).fsPath; + if (!fsPath.includes(workspaceName)) return acc; + return URI.file( + path.relative(path.resolve(workspacePath, ".."), fsPath), + ).path; + }, + "", )} ${location}`; }; @@ -76,44 +84,44 @@ describe("workspace/symbol", () => { expect(symbols.map(toTestResult)).toMatchInlineSnapshot(` Array [ - "stack_of_ints 5 file:///bin/a.ml 51:0 65:5", - "size 6 file:///bin/a.ml 64:11 64:15", - "peek 6 file:///bin/a.ml 62:11 62:15", - "pop 6 file:///bin/a.ml 57:11 57:14", - "push 6 file:///bin/a.ml 55:11 55:15", - "the_list 12 file:///bin/a.ml 53:16 53:24", - "Foo 9 file:///bin/a.ml 49:0 49:23", - "Increment 2 file:///bin/a.ml 45:0 47:3", - "increment_x 12 file:///bin/a.ml 46:2 46:27", - "X_int 2 file:///bin/a.ml 41:0 43:3", - "x 12 file:///bin/a.ml 42:2 42:13", - "A_Mod 2 file:///bin/a.ml 29:0 39:3", - "compare 12 file:///bin/a.ml 38:2 38:30", - "private_mod_fn 12 file:///bin/a.ml 36:2 36:33", - "t 15 file:///bin/a.ml 34:2 34:14", - "My_string 2 file:///bin/a.ml 27:0 27:25", - "StringMap 2 file:///bin/a.ml 26:0 26:36", - "a_i 12 file:///bin/a.ml 22:0 24:7", - "a_arr 12 file:///bin/a.ml 18:0 18:14", - "a_u 12 file:///bin/a.ml 16:0 16:15", - "user 15 file:///bin/a.ml 12:0 14:12", - "NotAdmin 9 file:///bin/a.ml 14:2 14:12", - "Admin 9 file:///bin/a.ml 13:2 13:9", - "a_d 12 file:///bin/a.ml 7:0 10:14", - "A_B 2 file:///bin/a.ml 2:0 5:3", - "a_b 12 file:///bin/a.ml 4:2 4:19", - "a_b_t 15 file:///bin/a.ml 3:2 3:21", - "a_x 12 file:///bin/a.ml 0:0 0:11", - "main_y 12 file:///bin/main.ml 0:0 0:22", - "vendored_x 12 file:///lib/lib.ml 14:0 14:31", - "lib_type 12 file:///lib/lib.ml 12:0 12:38", - "lib_private_fn 12 file:///lib/lib.ml 10:0 10:38", - "hd 12 file:///lib/lib.ml 8:0 8:16", - "lib_x 12 file:///lib/lib.ml 6:0 6:14", - "user 15 file:///lib/lib.ml 3:0 5:1", - "name 7 file:///lib/lib.ml 4:2 4:14", - "t 15 file:///lib/LibTypes.mli 0:0 0:15", - "x 12 file:///vendor/vendored_lib.ml 0:0 0:9", + "stack_of_ints 5 /workspace_symbol_A/bin/a.ml 51:0 65:5", + "size 6 /workspace_symbol_A/bin/a.ml 64:11 64:15", + "peek 6 /workspace_symbol_A/bin/a.ml 62:11 62:15", + "pop 6 /workspace_symbol_A/bin/a.ml 57:11 57:14", + "push 6 /workspace_symbol_A/bin/a.ml 55:11 55:15", + "the_list 12 /workspace_symbol_A/bin/a.ml 53:16 53:24", + "Foo 9 /workspace_symbol_A/bin/a.ml 49:0 49:23", + "Increment 2 /workspace_symbol_A/bin/a.ml 45:0 47:3", + "increment_x 12 /workspace_symbol_A/bin/a.ml 46:2 46:27", + "X_int 2 /workspace_symbol_A/bin/a.ml 41:0 43:3", + "x 12 /workspace_symbol_A/bin/a.ml 42:2 42:13", + "A_Mod 2 /workspace_symbol_A/bin/a.ml 29:0 39:3", + "compare 12 /workspace_symbol_A/bin/a.ml 38:2 38:30", + "private_mod_fn 12 /workspace_symbol_A/bin/a.ml 36:2 36:33", + "t 15 /workspace_symbol_A/bin/a.ml 34:2 34:14", + "My_string 2 /workspace_symbol_A/bin/a.ml 27:0 27:25", + "StringMap 2 /workspace_symbol_A/bin/a.ml 26:0 26:36", + "a_i 12 /workspace_symbol_A/bin/a.ml 22:0 24:7", + "a_arr 12 /workspace_symbol_A/bin/a.ml 18:0 18:14", + "a_u 12 /workspace_symbol_A/bin/a.ml 16:0 16:15", + "user 15 /workspace_symbol_A/bin/a.ml 12:0 14:12", + "NotAdmin 9 /workspace_symbol_A/bin/a.ml 14:2 14:12", + "Admin 9 /workspace_symbol_A/bin/a.ml 13:2 13:9", + "a_d 12 /workspace_symbol_A/bin/a.ml 7:0 10:14", + "A_B 2 /workspace_symbol_A/bin/a.ml 2:0 5:3", + "a_b 12 /workspace_symbol_A/bin/a.ml 4:2 4:19", + "a_b_t 15 /workspace_symbol_A/bin/a.ml 3:2 3:21", + "a_x 12 /workspace_symbol_A/bin/a.ml 0:0 0:11", + "main_y 12 /workspace_symbol_A/bin/main.ml 0:0 0:22", + "vendored_x 12 /workspace_symbol_A/lib/lib.ml 14:0 14:31", + "lib_type 12 /workspace_symbol_A/lib/lib.ml 12:0 12:38", + "lib_private_fn 12 /workspace_symbol_A/lib/lib.ml 10:0 10:38", + "hd 12 /workspace_symbol_A/lib/lib.ml 8:0 8:16", + "lib_x 12 /workspace_symbol_A/lib/lib.ml 6:0 6:14", + "user 15 /workspace_symbol_A/lib/lib.ml 3:0 5:1", + "name 7 /workspace_symbol_A/lib/lib.ml 4:2 4:14", + "t 15 /workspace_symbol_A/lib/LibTypes.mli 0:0 0:15", + "x 12 /workspace_symbol_A/vendor/vendored_lib.ml 0:0 0:9", ] `); }); @@ -131,13 +139,13 @@ describe("workspace/symbol", () => { expect(symbols.map(toTestResult)).toMatchInlineSnapshot(` Array [ - "a_i 12 file:///bin/a.ml 22:0 24:7", - "a_arr 12 file:///bin/a.ml 18:0 18:14", - "a_u 12 file:///bin/a.ml 16:0 16:15", - "a_d 12 file:///bin/a.ml 7:0 10:14", - "a_b 12 file:///bin/a.ml 4:2 4:19", - "a_b_t 15 file:///bin/a.ml 3:2 3:21", - "a_x 12 file:///bin/a.ml 0:0 0:11", + "a_i 12 /workspace_symbol_A/bin/a.ml 22:0 24:7", + "a_arr 12 /workspace_symbol_A/bin/a.ml 18:0 18:14", + "a_u 12 /workspace_symbol_A/bin/a.ml 16:0 16:15", + "a_d 12 /workspace_symbol_A/bin/a.ml 7:0 10:14", + "a_b 12 /workspace_symbol_A/bin/a.ml 4:2 4:19", + "a_b_t 15 /workspace_symbol_A/bin/a.ml 3:2 3:21", + "a_x 12 /workspace_symbol_A/bin/a.ml 0:0 0:11", ] `); }); @@ -156,45 +164,45 @@ describe("workspace/symbol", () => { expect(symbols.map(toTestResult)).toMatchInlineSnapshot(` Array [ - "stack_of_ints 5 file:///bin/a.ml 51:0 65:5", - "size 6 file:///bin/a.ml 64:11 64:15", - "peek 6 file:///bin/a.ml 62:11 62:15", - "pop 6 file:///bin/a.ml 57:11 57:14", - "push 6 file:///bin/a.ml 55:11 55:15", - "the_list 12 file:///bin/a.ml 53:16 53:24", - "Foo 9 file:///bin/a.ml 49:0 49:23", - "Increment 2 file:///bin/a.ml 45:0 47:3", - "increment_x 12 file:///bin/a.ml 46:2 46:27", - "X_int 2 file:///bin/a.ml 41:0 43:3", - "x 12 file:///bin/a.ml 42:2 42:13", - "A_Mod 2 file:///bin/a.ml 29:0 39:3", - "compare 12 file:///bin/a.ml 38:2 38:30", - "private_mod_fn 12 file:///bin/a.ml 36:2 36:33", - "t 15 file:///bin/a.ml 34:2 34:14", - "My_string 2 file:///bin/a.ml 27:0 27:25", - "StringMap 2 file:///bin/a.ml 26:0 26:36", - "a_i 12 file:///bin/a.ml 22:0 24:7", - "a_arr 12 file:///bin/a.ml 18:0 18:14", - "a_u 12 file:///bin/a.ml 16:0 16:15", - "user 15 file:///bin/a.ml 12:0 14:12", - "NotAdmin 9 file:///bin/a.ml 14:2 14:12", - "Admin 9 file:///bin/a.ml 13:2 13:9", - "a_d 12 file:///bin/a.ml 7:0 10:14", - "A_B 2 file:///bin/a.ml 2:0 5:3", - "a_b 12 file:///bin/a.ml 4:2 4:19", - "a_b_t 15 file:///bin/a.ml 3:2 3:21", - "a_x 12 file:///bin/a.ml 0:0 0:11", - "main_y 12 file:///bin/main.ml 0:0 0:22", - "vendored_x 12 file:///lib/lib.ml 14:0 14:31", - "lib_type 12 file:///lib/lib.ml 12:0 12:38", - "lib_private_fn 12 file:///lib/lib.ml 10:0 10:38", - "hd 12 file:///lib/lib.ml 8:0 8:16", - "lib_x 12 file:///lib/lib.ml 6:0 6:14", - "user 15 file:///lib/lib.ml 3:0 5:1", - "name 7 file:///lib/lib.ml 4:2 4:14", - "t 15 file:///lib/LibTypes.mli 0:0 0:15", - "x 12 file:///vendor/vendored_lib.ml 0:0 0:9", - "workspace_B 12 file:///main.ml 0:0 0:31", + "stack_of_ints 5 /workspace_symbol_A/bin/a.ml 51:0 65:5", + "size 6 /workspace_symbol_A/bin/a.ml 64:11 64:15", + "peek 6 /workspace_symbol_A/bin/a.ml 62:11 62:15", + "pop 6 /workspace_symbol_A/bin/a.ml 57:11 57:14", + "push 6 /workspace_symbol_A/bin/a.ml 55:11 55:15", + "the_list 12 /workspace_symbol_A/bin/a.ml 53:16 53:24", + "Foo 9 /workspace_symbol_A/bin/a.ml 49:0 49:23", + "Increment 2 /workspace_symbol_A/bin/a.ml 45:0 47:3", + "increment_x 12 /workspace_symbol_A/bin/a.ml 46:2 46:27", + "X_int 2 /workspace_symbol_A/bin/a.ml 41:0 43:3", + "x 12 /workspace_symbol_A/bin/a.ml 42:2 42:13", + "A_Mod 2 /workspace_symbol_A/bin/a.ml 29:0 39:3", + "compare 12 /workspace_symbol_A/bin/a.ml 38:2 38:30", + "private_mod_fn 12 /workspace_symbol_A/bin/a.ml 36:2 36:33", + "t 15 /workspace_symbol_A/bin/a.ml 34:2 34:14", + "My_string 2 /workspace_symbol_A/bin/a.ml 27:0 27:25", + "StringMap 2 /workspace_symbol_A/bin/a.ml 26:0 26:36", + "a_i 12 /workspace_symbol_A/bin/a.ml 22:0 24:7", + "a_arr 12 /workspace_symbol_A/bin/a.ml 18:0 18:14", + "a_u 12 /workspace_symbol_A/bin/a.ml 16:0 16:15", + "user 15 /workspace_symbol_A/bin/a.ml 12:0 14:12", + "NotAdmin 9 /workspace_symbol_A/bin/a.ml 14:2 14:12", + "Admin 9 /workspace_symbol_A/bin/a.ml 13:2 13:9", + "a_d 12 /workspace_symbol_A/bin/a.ml 7:0 10:14", + "A_B 2 /workspace_symbol_A/bin/a.ml 2:0 5:3", + "a_b 12 /workspace_symbol_A/bin/a.ml 4:2 4:19", + "a_b_t 15 /workspace_symbol_A/bin/a.ml 3:2 3:21", + "a_x 12 /workspace_symbol_A/bin/a.ml 0:0 0:11", + "main_y 12 /workspace_symbol_A/bin/main.ml 0:0 0:22", + "vendored_x 12 /workspace_symbol_A/lib/lib.ml 14:0 14:31", + "lib_type 12 /workspace_symbol_A/lib/lib.ml 12:0 12:38", + "lib_private_fn 12 /workspace_symbol_A/lib/lib.ml 10:0 10:38", + "hd 12 /workspace_symbol_A/lib/lib.ml 8:0 8:16", + "lib_x 12 /workspace_symbol_A/lib/lib.ml 6:0 6:14", + "user 15 /workspace_symbol_A/lib/lib.ml 3:0 5:1", + "name 7 /workspace_symbol_A/lib/lib.ml 4:2 4:14", + "t 15 /workspace_symbol_A/lib/LibTypes.mli 0:0 0:15", + "x 12 /workspace_symbol_A/vendor/vendored_lib.ml 0:0 0:9", + "workspace_B 12 /workspace_symbol_B/main.ml 0:0 0:31", ] `); });