shoe-converter
Version:
Making it possible to convert the shoe size and gender of one brand to another.
121 lines (120 loc) • 5.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const utils_1 = require("../utils/utils");
describe("src/utils/utils.ts", () => {
describe("should capitalize first letter()", () => {
test("should return the string with the first letter capitalized", () => {
const string = "asd";
const result = "Asd";
expect((0, utils_1.capitalizeFirstLetter)(string)).toBe(result);
});
});
describe("isTypeValid()", () => {
test("should return true provided a string", () => {
const string = "asd";
expect((0, utils_1.isTypeValid)(string)).toBe(true);
});
});
describe("isSizeFormatValid()", () => {
const validShoeSizes = {
wholeNumber: "10",
thirds: "42 2/3",
decimals: "8.5",
};
const invalidShoeSizes = {
longNumber: "101",
letters: "asd",
emptyString: "",
};
test("should return true provided with a whole number", () => {
expect((0, utils_1.isSizeFormatValid)(validShoeSizes.wholeNumber)).toBe(true);
});
test("should return true provided with a number of thirds", () => {
expect((0, utils_1.isSizeFormatValid)(validShoeSizes.thirds)).toBe(true);
});
test("should return true provided with a number with decimals", () => {
expect((0, utils_1.isSizeFormatValid)(validShoeSizes.decimals)).toBe(true);
});
test("should return false provided with a number > 100", () => {
expect((0, utils_1.isSizeFormatValid)(invalidShoeSizes.longNumber)).toBe(false);
});
test("should return false provided with letters", () => {
expect((0, utils_1.isSizeFormatValid)(invalidShoeSizes.letters)).toBe(false);
});
test("should return false provided with an empty string", () => {
expect((0, utils_1.isSizeFormatValid)(invalidShoeSizes.emptyString)).toBe(false);
});
});
describe("isGenderManageable()", () => {
const manageableGender = {
men: "men",
women: "women",
male: "male",
female: "female",
};
const unManageableGender = {
kids: "kids",
infant: "infant",
number: "123",
questionMark: "?",
};
test("should return true when provided with 'men'", () => {
expect((0, utils_1.isGenderManageable)(manageableGender.men)).toBe(true);
});
test("should return true when provided with 'women'", () => {
expect((0, utils_1.isGenderManageable)(manageableGender.women)).toBe(true);
});
test("should return true when provided with 'male'", () => {
expect((0, utils_1.isGenderManageable)(manageableGender.male)).toBe(true);
});
test("should return true when provided with 'female'", () => {
expect((0, utils_1.isGenderManageable)(manageableGender.female)).toBe(true);
});
test("should return false when provided with 'kids'", () => {
expect((0, utils_1.isGenderManageable)(unManageableGender.kids)).toBe(false);
});
test("should return false when provided with 'infant'", () => {
expect((0, utils_1.isGenderManageable)(unManageableGender.infant)).toBe(false);
});
test("should return false when provided with a numbers", () => {
expect((0, utils_1.isGenderManageable)(unManageableGender.number)).toBe(false);
});
test("should return false when provided with a question mark", () => {
expect((0, utils_1.isGenderManageable)(unManageableGender.questionMark)).toBe(false);
});
});
describe("convertGenderSynonym()", () => {
const gender = {
men: "men",
women: "women",
male: "male",
female: "female",
};
test("should return 'men' when provided with 'men'", () => {
expect((0, utils_1.convertGenderSynonym)(gender.men)).toStrictEqual(gender.men);
});
test("should return 'women' when provided with 'women'", () => {
expect((0, utils_1.convertGenderSynonym)(gender.women)).toStrictEqual(gender.women);
});
test("should return 'men' when provided with 'male'", () => {
expect((0, utils_1.convertGenderSynonym)(gender.male)).toStrictEqual(gender.men);
});
test("should return 'women' when provided with 'female'", () => {
expect((0, utils_1.convertGenderSynonym)(gender.female)).toStrictEqual(gender.women);
});
});
//TODO Add tests for isGenderAvailable()
describe("isGenderMan()", () => {
const parameter = {
men: "men",
notMen: "notMen",
};
test("should return true when provided with 'men'", () => {
expect((0, utils_1.isGenderMan)(parameter.men)).toBe(true);
});
test("should return false when provided with 'notMen'", () => {
expect((0, utils_1.isGenderMan)(parameter.notMen)).toBe(false);
});
});
//TODO Add tests for getSizes()
});