@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
JavaScript
;
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);
});
});
});