radio-station/app/utils.test.ts
Luke Bunselmeyer 78c07c40cc - Fixed E2E smoke tests
- Added unit test for `slugify`
- Updated readme
2023-05-08 00:55:06 -04:00

39 lines
1.3 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { slugify, validateEmail } from "./utils";
describe("utils", () => {
describe("validateEmail", () => {
it("should returns false for non-emails", () => {
expect(validateEmail(undefined)).toBe(false);
expect(validateEmail(null)).toBe(false);
expect(validateEmail("")).toBe(false);
expect(validateEmail("not-an-email")).toBe(false);
expect(validateEmail("n@")).toBe(false);
});
it("should returns true for emails", () => {
expect(validateEmail("kody@example.com")).toBe(true);
});
});
describe("slugify", () => {
it("should convert text into url safe text", () => {
expect(slugify("Abc dEf")).toBe("abc-def");
expect(slugify(" abc def ")).toBe("abc-def");
expect(slugify("abcDef")).toBe("abcdef");
expect(slugify("abc.def")).toBe("abcdef");
expect(slugify("abc!def")).toBe("abcdef");
expect(slugify("abcdëf")).toBe("abcdef");
expect(slugify("abc--def")).toBe("abc-def");
expect(slugify("abc&def")).toBe("abc-and-def");
expect(slugify("abc12def")).toBe("abc12def");
expect(slugify("abc_def")).toBe("abc-def");
});
});
});