UNPKG

@bangladeshi/bangladesh-address

Version:

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

130 lines (129 loc) 7.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const district_1 = require("../district"); const division_name_1 = require("../division/types/division-name"); describe("District functions", () => { describe("districtsOf", () => { it("should return districts for Dhaka division", () => { const districts = (0, district_1.districtsOf)(division_name_1.DivisionName.Dhaka); expect(districts.length).toBeGreaterThan(0); expect(districts).toContain("Dhaka"); expect(districts).toContain("Gazipur"); }); it("should return districts for Chattogram division", () => { const districts = (0, district_1.districtsOf)(division_name_1.DivisionName.Chattogram); expect(districts.length).toBeGreaterThan(0); expect(districts).toContain("Chattogram"); expect(districts).toContain("Cox's Bazar"); }); it("should return an array of strings", () => { const districts = (0, district_1.districtsOf)(division_name_1.DivisionName.Rajshahi); districts.forEach((district) => { expect(typeof district).toBe("string"); }); }); it("should return unique district names", () => { const districts = (0, district_1.districtsOf)(division_name_1.DivisionName.Khulna); const uniqueDistricts = [...new Set(districts)]; expect(districts.length).toBe(uniqueDistricts.length); }); }); describe("allDistricts", () => { it("should return all 64 districts of Bangladesh", () => { const districts = (0, district_1.allDistricts)(); expect(districts).toHaveLength(64); }); it("should return an array of strings", () => { const districts = (0, district_1.allDistricts)(); districts.forEach((district) => { expect(typeof district).toBe("string"); }); }); it("should contain major districts", () => { const districts = (0, district_1.allDistricts)(); expect(districts).toContain("Dhaka"); expect(districts).toContain("Chattogram"); expect(districts).toContain("Sylhet"); expect(districts).toContain("Rajshahi"); }); it("should return unique district names", () => { const districts = (0, district_1.allDistricts)(); const uniqueDistricts = [...new Set(districts)]; expect(districts.length).toBe(uniqueDistricts.length); }); }); describe("isValidDistrict", () => { it("should return true for valid districts", () => { expect((0, district_1.isValidDistrict)("Dhaka")).toBe(true); expect((0, district_1.isValidDistrict)("Chattogram")).toBe(true); expect((0, district_1.isValidDistrict)("Sylhet")).toBe(true); expect((0, district_1.isValidDistrict)("Tangail")).toBe(true); expect((0, district_1.isValidDistrict)("Cox's Bazar")).toBe(true); }); it("should return false for invalid districts", () => { expect((0, district_1.isValidDistrict)("InvalidDistrict")).toBe(false); expect((0, district_1.isValidDistrict)("Savar")).toBe(false); expect((0, district_1.isValidDistrict)("Gulshan")).toBe(false); }); it("should handle case-insensitive input", () => { expect((0, district_1.isValidDistrict)("dhaka")).toBe(true); expect((0, district_1.isValidDistrict)("CHATTOGRAM")).toBe(true); expect((0, district_1.isValidDistrict)("SyLhEt")).toBe(true); }); it("should return false for null/undefined input", () => { expect((0, district_1.isValidDistrict)(null)).toBe(false); expect((0, district_1.isValidDistrict)(undefined)).toBe(false); expect((0, district_1.isValidDistrict)("")).toBe(false); }); it("should handle whitespace in input", () => { expect((0, district_1.isValidDistrict)(" Dhaka ")).toBe(true); expect((0, district_1.isValidDistrict)(" Chattogram ")).toBe(true); }); it("should return false for non-districts", () => { expect((0, district_1.isValidDistrict)("Dhaka")).toBe(true); expect((0, district_1.isValidDistrict)("InvalidDistrict")).toBe(false); }); }); describe("getDivisionOfDistrict", () => { it("should return correct division for districts", () => { expect((0, district_1.getDivisionOfDistrict)("Dhaka")).toBe("Dhaka"); expect((0, district_1.getDivisionOfDistrict)("Gazipur")).toBe("Dhaka"); expect((0, district_1.getDivisionOfDistrict)("Tangail")).toBe("Dhaka"); expect((0, district_1.getDivisionOfDistrict)("Chattogram")).toBe("Chattogram"); expect((0, district_1.getDivisionOfDistrict)("Cox's Bazar")).toBe("Chattogram"); expect((0, district_1.getDivisionOfDistrict)("Sylhet")).toBe("Sylhet"); expect((0, district_1.getDivisionOfDistrict)("Rajshahi")).toBe("Rajshahi"); expect((0, district_1.getDivisionOfDistrict)("Khulna")).toBe("Khulna"); expect((0, district_1.getDivisionOfDistrict)("Barisal")).toBe("Barisal"); expect((0, district_1.getDivisionOfDistrict)("Rangpur")).toBe("Rangpur"); expect((0, district_1.getDivisionOfDistrict)("Mymensingh")).toBe("Mymensingh"); }); it("should return undefined for invalid districts", () => { expect((0, district_1.getDivisionOfDistrict)("InvalidDistrict")).toBeUndefined(); expect((0, district_1.getDivisionOfDistrict)("Savar")).toBeUndefined(); expect((0, district_1.getDivisionOfDistrict)("Gulshan")).toBeUndefined(); }); it("should handle case-insensitive input", () => { expect((0, district_1.getDivisionOfDistrict)("dhaka")).toBe("Dhaka"); expect((0, district_1.getDivisionOfDistrict)("CHATTOGRAM")).toBe("Chattogram"); expect((0, district_1.getDivisionOfDistrict)("SyLhEt")).toBe("Sylhet"); }); it("should return undefined for null/undefined input", () => { expect((0, district_1.getDivisionOfDistrict)(null)).toBeUndefined(); expect((0, district_1.getDivisionOfDistrict)(undefined)).toBeUndefined(); expect((0, district_1.getDivisionOfDistrict)("")).toBeUndefined(); }); it("should handle whitespace in input", () => { expect((0, district_1.getDivisionOfDistrict)(" Dhaka ")).toBe("Dhaka"); expect((0, district_1.getDivisionOfDistrict)(" Chattogram ")).toBe("Chattogram"); }); it("should return correct division for all 64 districts", () => { const districts = (0, district_1.allDistricts)(); districts.forEach((district) => { const division = (0, district_1.getDivisionOfDistrict)(district); expect(division).toBeDefined(); expect(["Dhaka", "Chattogram", "Rajshahi", "Khulna", "Barisal", "Sylhet", "Rangpur", "Mymensingh"]).toContain(division); }); }); }); });