Theme
Primary Color
Lesson 7

Describe And Test Advanced Trainings

input.js
function filterName(name) {
  if (name === undefined) {
    name = "Unknown";
  }
  if (name.startsWith(" ") || name.endsWith(" ")) {
    name = name.trim();
  }
  if (name.length > 10) {
    name = name.substring(0, 10);
  }
  if (name.startsWith("_")) {
    name = name.substring(1);
  }
  return name;
}

module.exports = filterName;
input.test.js
const theFilter = require("../input");

describe("Validate The Input Field", () => {
  test("Check If Name Is Empty", () => {
    expect(theFilter()).toBe("Unknown");
  });
  test("Check For Spaces (Start + End)", () => {
    expect(theFilter(" Osama ")).toBe("Osama");
  });
  test("Check If Name Length > 10 Characters", () => {
    expect(theFilter("Osama_Mohamed_Elsayed")).toBe("Osama_Moha");
  });
  test("Check If Name Not Starts With Underscore", () => {
    expect(theFilter("_Osama")).toBe("Osama");
  });
});