UNPKG

@bangladeshi/bangladesh-address

Version:

A simple npm package for Bangladesh's administrative divisions, districts, upazilas, and metropolitan thanas.

111 lines (110 loc) 5.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const division_1 = require("../division"); const division_name_1 = require("../division/types/division-name"); describe("Division functions", () => { describe("allDivision", () => { it("should return all 8 divisions of Bangladesh", () => { const divisions = (0, division_1.allDivision)(); expect(divisions).toHaveLength(8); }); it("should contain all expected division names", () => { const divisions = (0, division_1.allDivision)(); const expectedDivisions = [ "Barisal", "Chattogram", "Dhaka", "Khulna", "Mymensingh", "Rajshahi", "Rangpur", "Sylhet", ]; expectedDivisions.forEach((div) => { expect(divisions).toContain(div); }); }); it("should return an array of strings", () => { const divisions = (0, division_1.allDivision)(); divisions.forEach((div) => { expect(typeof div).toBe("string"); }); }); }); describe("getDivision", () => { it("should return upazilas for Dhaka division", () => { const result = (0, division_1.getDivision)(division_name_1.DivisionName.Dhaka); expect(result.length).toBeGreaterThan(0); result.forEach((item) => { expect(item.division).toBe("Dhaka"); }); }); it("should accept string input", () => { const result = (0, division_1.getDivision)("dhaka"); expect(result.length).toBeGreaterThan(0); result.forEach((item) => { expect(item.division).toBe("Dhaka"); }); }); it("should return empty array for invalid division", () => { const result = (0, division_1.getDivision)("InvalidDivision"); expect(result).toHaveLength(0); }); it("should return objects with upazila, district, and division properties", () => { const result = (0, division_1.getDivision)(division_name_1.DivisionName.Chattogram); expect(result.length).toBeGreaterThan(0); result.forEach((item) => { expect(item).toHaveProperty("upazila"); expect(item).toHaveProperty("district"); expect(item).toHaveProperty("division"); }); }); }); describe("divisionalDataOf", () => { it("should return districts and upazilas for a division", () => { const result = (0, division_1.divisionalDataOf)(division_name_1.DivisionName.Sylhet); expect(result.length).toBeGreaterThan(0); result.forEach((item) => { expect(item).toHaveProperty("district"); expect(item).toHaveProperty("upazila"); }); }); it("should not include division in returned objects", () => { const result = (0, division_1.divisionalDataOf)(division_name_1.DivisionName.Khulna); result.forEach((item) => { expect(item).not.toHaveProperty("division"); }); }); }); describe("isValidDivision", () => { it("should return true for valid divisions", () => { expect((0, division_1.isValidDivision)("Dhaka")).toBe(true); expect((0, division_1.isValidDivision)("Chattogram")).toBe(true); expect((0, division_1.isValidDivision)("Sylhet")).toBe(true); expect((0, division_1.isValidDivision)("Khulna")).toBe(true); expect((0, division_1.isValidDivision)("Rajshahi")).toBe(true); expect((0, division_1.isValidDivision)("Rangpur")).toBe(true); expect((0, division_1.isValidDivision)("Barisal")).toBe(true); expect((0, division_1.isValidDivision)("Mymensingh")).toBe(true); }); it("should return false for invalid divisions", () => { expect((0, division_1.isValidDivision)("InvalidDivision")).toBe(false); expect((0, division_1.isValidDivision)("Tangail")).toBe(false); expect((0, division_1.isValidDivision)("Savar")).toBe(false); }); it("should handle case-insensitive input", () => { expect((0, division_1.isValidDivision)("dhaka")).toBe(true); expect((0, division_1.isValidDivision)("CHATTOGRAM")).toBe(true); expect((0, division_1.isValidDivision)("SyLhEt")).toBe(true); }); it("should return false for null/undefined input", () => { expect((0, division_1.isValidDivision)(null)).toBe(false); expect((0, division_1.isValidDivision)(undefined)).toBe(false); expect((0, division_1.isValidDivision)("")).toBe(false); }); it("should handle whitespace in input", () => { expect((0, division_1.isValidDivision)(" Dhaka ")).toBe(true); expect((0, division_1.isValidDivision)(" Chattogram ")).toBe(true); }); }); });