implement string utilities lib

This commit is contained in:
Hayden 2022-09-19 20:54:05 -08:00
parent 12dee6fcc5
commit 257457a2d8
2 changed files with 70 additions and 0 deletions

View file

@ -0,0 +1,56 @@
import { describe, it, expect } from "vitest";
import { titlecase, capitalize, truncate } from ".";
describe("title case tests", () => {
it("should return the same string if it's already title case", () => {
expect(titlecase("Hello World")).toBe("Hello World");
});
it("should title case a lower case word", () => {
expect(titlecase("hello")).toBe("Hello");
});
it("should title case a sentence", () => {
expect(titlecase("hello world")).toBe("Hello World");
});
it("should title case a sentence with multiple words", () => {
expect(titlecase("hello world this is a test")).toBe("Hello World This Is A Test");
});
});
describe("capitilize tests", () => {
it("should return the same string if it's already capitalized", () => {
expect(capitalize("Hello")).toBe("Hello");
});
it("should capitalize a lower case word", () => {
expect(capitalize("hello")).toBe("Hello");
});
it("should capitalize a sentence", () => {
expect(capitalize("hello world")).toBe("Hello world");
});
it("should capitalize a sentence with multiple words", () => {
expect(capitalize("hello world this is a test")).toBe("Hello world this is a test");
});
});
describe("truncase tests", () => {
it("should return the same string if it's already truncated", () => {
expect(truncate("Hello", 5)).toBe("Hello");
});
it("should truncate a lower case word", () => {
expect(truncate("hello", 3)).toBe("hel...");
});
it("should truncate a sentence", () => {
expect(truncate("hello world", 5)).toBe("hello...");
});
it("should truncate a sentence with multiple words", () => {
expect(truncate("hello world this is a test", 10)).toBe("hello worl...");
});
});

View file

@ -0,0 +1,14 @@
export function titlecase(str: string) {
return str
.split(" ")
.map(word => word[0].toUpperCase() + word.slice(1))
.join(" ");
}
export function capitalize(str: string) {
return str[0].toUpperCase() + str.slice(1);
}
export function truncate(str: string, length: number) {
return str.length > length ? str.substring(0, length) + "..." : str;
}