From 83b3b1fc39fc05f69e83e51e920cc84245dcba1b Mon Sep 17 00:00:00 2001 From: Garrett Date: Fri, 3 Jun 2022 19:35:29 +0000 Subject: [PATCH 1/3] fix: handle owner but no name syntax --- site/src/util/workspace.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/src/util/workspace.ts b/site/src/util/workspace.ts index 44dec857ab3d8..75f48e24bda30 100644 --- a/site/src/util/workspace.ts +++ b/site/src/util/workspace.ts @@ -230,7 +230,7 @@ export const workspaceQueryToFilter = (query?: string): TypesGen.WorkspaceFilter } const [username, name] = part.split("/") - if (username && name) { + if (username) { return { owner: username, name: name, From 80efe0768ca37510543569384c971f533cb17c39 Mon Sep 17 00:00:00 2001 From: Garrett Date: Fri, 3 Jun 2022 19:50:20 +0000 Subject: [PATCH 2/3] fix logic --- site/src/util/workspace.test.ts | 1 + site/src/util/workspace.ts | 21 ++++++++++++--------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/site/src/util/workspace.test.ts b/site/src/util/workspace.test.ts index 3813f1ab50411..bc740beb1b4fe 100644 --- a/site/src/util/workspace.test.ts +++ b/site/src/util/workspace.test.ts @@ -71,6 +71,7 @@ describe("util > workspace", () => { ["owner:me", { owner: "me" }], ["owner:me owner:me2", { owner: "me" }], ["me/dev", { owner: "me", name: "dev" }], + ["me/", { owner: "me" }], [" key:val owner:me ", { owner: "me" }], ])(`query=%p, filter=%p`, (query, filter) => { expect(workspaceQueryToFilter(query)).toEqual(filter) diff --git a/site/src/util/workspace.ts b/site/src/util/workspace.ts index 75f48e24bda30..e97d21f73b25f 100644 --- a/site/src/util/workspace.ts +++ b/site/src/util/workspace.ts @@ -218,24 +218,27 @@ export const workspaceQueryToFilter = (query?: string): TypesGen.WorkspaceFilter const parts = preparedQuery.split(" ") for (const part of parts) { - const [key, val] = part.split(":") - if (key && val) { - if (key === "owner") { - return { - owner: val, + if (part.includes(":")) { + const [key, val] = part.split(":") + if (key && val) { + if (key === "owner") { + return { + owner: val, + } } + // skip invalid key pairs + continue } - // skip invalid key pairs - continue } - const [username, name] = part.split("/") - if (username) { + if (part.includes("/")) { + const [username, name] = part.split("/") return { owner: username, name: name, } } + return { name: part, } From 767b0ec5491d024b9855407c927f5a00755a0c17 Mon Sep 17 00:00:00 2001 From: Garrett Date: Fri, 3 Jun 2022 21:35:14 +0000 Subject: [PATCH 3/3] fix test --- site/src/util/workspace.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/src/util/workspace.ts b/site/src/util/workspace.ts index e97d21f73b25f..8ed7b2347d60a 100644 --- a/site/src/util/workspace.ts +++ b/site/src/util/workspace.ts @@ -235,10 +235,10 @@ export const workspaceQueryToFilter = (query?: string): TypesGen.WorkspaceFilter const [username, name] = part.split("/") return { owner: username, - name: name, + name: name === "" ? undefined : name, } } - + return { name: part, }