Skip to content

Commit 411345d

Browse files
committed
fix name parser
1 parent 83168dc commit 411345d

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

src/common/utils.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@ export function transformCommaSeperatedName(name: string) {
22
if (name.includes(",")) {
33
try {
44
const split = name.split(",");
5+
if (split.filter((x) => x !== " " && x !== "").length !== 2) {
6+
return name;
7+
}
58
return `${split[1].slice(1, split[1].length).split(" ")[0]} ${split[0]}`;
69
} catch {
710
return name;

tests/unit/common/utils.test.ts

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import { expect, test, describe } from "vitest";
2+
import { transformCommaSeperatedName } from "../../../src/common/utils.js";
3+
4+
describe("Comma-seperated name transformer tests", () => {
5+
test("Already-transformed names are returned as-is", () => {
6+
const output = transformCommaSeperatedName("Test User");
7+
expect(output).toEqual("Test User");
8+
});
9+
test("Last, First is returned as First Last", () => {
10+
const output = transformCommaSeperatedName("User, Test");
11+
expect(output).toEqual("Test User");
12+
});
13+
test("Last, First Middle is returned as First Last", () => {
14+
const output = transformCommaSeperatedName("User, Test Thing");
15+
expect(output).toEqual("Test User");
16+
});
17+
test("`Last, ` is returned as-is", () => {
18+
const output = transformCommaSeperatedName("User, ");
19+
expect(output).toEqual("User, ");
20+
});
21+
test("`Last,` is returned as-is", () => {
22+
const output = transformCommaSeperatedName("User,");
23+
expect(output).toEqual("User,");
24+
});
25+
test("`, Test` is returned as-is", () => {
26+
const output = transformCommaSeperatedName(", Test");
27+
expect(output).toEqual(", Test");
28+
});
29+
});

0 commit comments

Comments
 (0)