Skip to content

Commit 66e15d5

Browse files
committed
fix(webapp): strip every task/ prefix from a stored queue name
1 parent 3c06178 commit 66e15d5

2 files changed

Lines changed: 24 additions & 1 deletion

File tree

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { describe, expect, it } from "vitest";
2+
import { storedQueueName } from "./queue-name";
3+
4+
describe("storedQueueName", () => {
5+
it("adds the prefix a task queue is stored with", () => {
6+
expect(storedQueueName({ type: "task", name: "my-task" })).toBe("task/my-task");
7+
});
8+
9+
it("keeps a prefix that is already there", () => {
10+
expect(storedQueueName({ type: "task", name: "task/my-task" })).toBe("task/my-task");
11+
});
12+
13+
// Malformed input reaches this, and the contract is one prefix, not "one fewer than it had".
14+
it("leaves one prefix however many the name arrived with", () => {
15+
expect(storedQueueName({ type: "task", name: "task/task/my-task" })).toBe("task/my-task");
16+
expect(storedQueueName({ type: "task", name: "task/task/task/my-task" })).toBe("task/my-task");
17+
});
18+
19+
it("leaves a custom queue alone, prefix-shaped name and all", () => {
20+
expect(storedQueueName({ type: "custom", name: "my-queue" })).toBe("my-queue");
21+
expect(storedQueueName({ type: "custom", name: "task/my-queue" })).toBe("task/my-queue");
22+
});
23+
});

apps/webapp/app/components/queues/queue-name.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
* `task/` prefix there, and the presenters strip it for display only.
44
*/
55
export function storedQueueName(queue: { type: string; name: string }): string {
6-
return queue.type === "task" ? `task/${queue.name.replace(/^task\//, "")}` : queue.name;
6+
return queue.type === "task" ? `task/${queue.name.replace(/^(?:task\/)+/, "")}` : queue.name;
77
}

0 commit comments

Comments
 (0)