UNPKG

@benitob/i18n-nationality

Version:
281 lines (280 loc) 10 kB
var assert = require("assert-plus"), i18n = require("../"); describe("i18n for nationalities", function () { "use strict"; describe("Alpha-2 to Alpha-2 code", function() { it("toAlpha2 SG => SG", function() { assert.equal(i18n.toAlpha2("SG"), "SG"); }); }); describe("Alpha-2 to Alpha-3 code", function() { it("toAlpha3 true => undefined", function() { assert.equal(i18n.toAlpha3(true), undefined); }); it("toAlpha3 XX => undefined", function() { assert.equal(i18n.toAlpha3("XX"), undefined); }); it("toAlpha3 SG => SGP", function() { assert.equal(i18n.toAlpha3("SG"), "SGP"); }); it("alpha2ToAlpha3 SG => SGP", function() { assert.equal(i18n.alpha2ToAlpha3("SG"), "SGP"); }); }); describe("Alpha-3 to Alpha-3 code", function() { it("toAlpha2 SGP => SGP", function() { assert.equal(i18n.toAlpha3("SGP"), "SGP"); }); }); describe("Alpha-3 to Alpha-2 code", function() { it("toAlpha2 true => undefined", function() { assert.equal(i18n.toAlpha2(true), undefined); }); it("toAlpha2 XXX => undefined", function() { assert.equal(i18n.toAlpha2("XXX"), undefined); }); it("toAlpha2 DEU => DE", function() { assert.equal(i18n.toAlpha2("DEU"), "DE"); }); it("alpha3ToAlpha2 DEU => DE", function() { assert.equal(i18n.alpha3ToAlpha2("DEU"), "DE"); }); }); describe("Alpha-3 to Numeric code", function() { it("alpha3ToNumeric SWE => 752", function() { assert.equal(i18n.alpha3ToNumeric("SWE"), 752); }); it("alpha3ToNumeric DJI => 262", function() { assert.equal(i18n.alpha3ToNumeric("DJI"), 262); }); }); describe("Alpha-2 to Numeric code", function() { it("alpha2ToNumeric SE => 752", function() { assert.equal(i18n.alpha2ToNumeric("SE"), 752); }); it("alpha2ToNumeric DJ => 262", function() { assert.equal(i18n.alpha2ToNumeric("DJ"), 262); }); }); describe("Numeric to Alpha-2 code", function() { it("toAlpha2 '276' => DE", function() { assert.equal(i18n.toAlpha2("276"), "DE"); }); it("toAlpha2 '004' => AF", function() { assert.equal(i18n.toAlpha2("004"), "AF"); }); it("toAlpha2 276 => DE", function() { assert.equal(i18n.toAlpha2(276), "DE"); }); it("toAlpha2 4 => AF", function() { assert.equal(i18n.toAlpha2(4), "AF"); }); it("numericToAlpha2 '276' => DE", function() { assert.equal(i18n.numericToAlpha2("276"), "DE"); }); it("numericToAlpha2 '004' => AF", function() { assert.equal(i18n.numericToAlpha2("004"), "AF"); }); it("numericToAlpha2 276 => DE", function() { assert.equal(i18n.numericToAlpha2(276), "DE"); }); it("numericToAlpha2 4 => AF", function() { assert.equal(i18n.numericToAlpha2(4), "AF"); }); }); describe("Numeric to Alpha-3 code", function() { it("toAlpha3 '276' => DEU", function() { assert.equal(i18n.toAlpha3("276"), "DEU"); }); it("toAlpha3 '004' => AFG", function() { assert.equal(i18n.toAlpha3("004"), "AFG"); }); it("toAlpha3 276 => DEU", function() { assert.equal(i18n.toAlpha3(276), "DEU"); }); it("toAlpha3 4 => DEU", function() { assert.equal(i18n.toAlpha3(4), "AFG"); }); it("numericToAlpha3 '276' => DEU", function() { assert.equal(i18n.numericToAlpha3("276"), "DEU"); }); it("numericToAlpha3 '004' => AFG", function() { assert.equal(i18n.numericToAlpha3("004"), "AFG"); }); it("numericToAlpha3 276 => DEU", function() { assert.equal(i18n.numericToAlpha3(276), "DEU"); }); it("numericToAlpha3 4 => AFG", function() { assert.equal(i18n.numericToAlpha3(4), "AFG"); }); }); describe("getAlpha2Codes", function() { it("length", function() { assert.equal(Object.keys(i18n.getAlpha2Codes()).length, 246); }); }); describe("getAlpha3Codes", function() { it("length", function() { assert.equal(Object.keys(i18n.getAlpha3Codes()).length, 246); }); }); describe("getNumericCodes", function() { it("length", function() { assert.equal(Object.keys(i18n.getNumericCodes()).length, 246); }); }); describe("getAlpha2Code", function() { it("missing name", function() { assert.equal(i18n.getAlpha2Code("XXX", "de"), undefined); }); it("missing land", function() { assert.equal(i18n.getAlpha2Code("Deutschland", "xx"), undefined); }); }); describe("getSimpleAlpha2Code", function() { it("works", function() { assert.equal(i18n.getSimpleAlpha2Code("belgisch", "de"), 'BE'); assert.equal(i18n.getSimpleAlpha2Code("Belgisch", "de"), 'BE'); }); it("missing name", function() { assert.equal(i18n.getSimpleAlpha2Code("XXX", "de"), undefined); }); it("missing land", function() { assert.equal(i18n.getSimpleAlpha2Code("Deutschland", "xx"), undefined); }); }); describe("getAlpha3Code", function() { it("missing name", function() { assert.equal(i18n.getAlpha3Code("XXX", "de"), undefined); }); it("missing land", function() { assert.equal(i18n.getAlpha3Code("Deutschland", "xx"), undefined); }); }); describe("getSimpleAlpha3Code", function() { it("works", function() { assert.equal(i18n.getSimpleAlpha3Code("belgisch", "de"), 'BEL'); assert.equal(i18n.getSimpleAlpha3Code("Belgisch", "de"), 'BEL'); }); it("missing name", function() { assert.equal(i18n.getSimpleAlpha3Code("XXX", "de"), undefined); }); it("missing land", function() { assert.equal(i18n.getSimpleAlpha3Code("Deutschland", "xx"), undefined); }); }); describe("isValid", function() { it("isValid true => false", function() { assert.equal(i18n.isValid(true), false); }); it("isValid XX => false", function() { assert.equal(i18n.isValid("XX"), false); }); it("isValid SG => true", function() { assert.equal(i18n.isValid("SG"), true); }); it("isValid SGP => true", function() { assert.equal(i18n.isValid("SGP"), true); }); it("isValid 702 => true", function() { assert.equal(i18n.isValid(702), true); }); it("isValid 999 => false", function() { assert.equal(i18n.isValid(999), false); }); it("isValid ... => false", function() { assert.equal(i18n.isValid('...'), false); }); it("isValid is case insensitive", function() { assert.equal(i18n.isValid('fra'), true); assert.equal(i18n.isValid('fr'), true); }); it("isValid works with undefined or null", function() { assert.equal(i18n.isValid(undefined), false); assert.equal(i18n.isValid(null), false); }); }); describe("completeness", function () { i18n.langs().forEach(function(lang) { describe(lang + " completeness", function () { it("complete (to less)", function() { Object.keys(i18n.getAlpha2Codes()).forEach(function(code) { assert.notEqual(i18n.getName(code, lang), undefined, "missing entry for " + code); }); }); it("complete (too much)", function() { Object.keys(i18n.getNames(lang)).forEach(function(code) { assert.notStrictEqual(i18n.getAlpha2Codes()[code], void 0, "entry for " + code + " in lang " + lang + " is too much"); }); }); }); }); }); describe("langs", function() { describe("de", function () { var lang = "de"; describe("get name", function () { it("for de", function () { assert.equal(i18n.getName("de", lang), "Deutsch"); }); it("for cl", function () { assert.equal(i18n.getName("cl", lang), "Chilenisch"); }); it("for CL", function () { assert.equal(i18n.getName("CL", lang), "Chilenisch"); }); it("for cy", function () { assert.equal(i18n.getName("cy", lang), "Zyprisch"); }); it("for af", function () { assert.equal(i18n.getName("af", lang), "Afghanisch"); }); }); }); describe("en", function () { var lang = "en"; describe("get Alpha-2 code", function() { it("nameToAlpha2 American => US", function() { assert.equal(i18n.getAlpha2Code("American", lang), "US"); }); it("nameToAlpha2 Brazilian => BR", function() { assert.equal(i18n.getAlpha2Code("Brazilian", lang), "BR"); }); }); describe("get Alpha-3 code", function() { it("nameToAlpha3 American => USA", function() { assert.equal(i18n.getAlpha3Code("American", lang), "USA"); }); it("nameToAlpha3 Brazilian => BRA", function() { assert.equal(i18n.getAlpha3Code("Brazilian", lang), "BRA"); }); }); describe("get name", function () { it("for de", function () { assert.equal(i18n.getName("de", lang), "German"); }); it("for cl", function () { assert.equal(i18n.getName("cl", lang), "Chilean"); }); it("for CL", function () { assert.equal(i18n.getName("CL", lang), "Chilean"); }); it("for cy", function () { assert.equal(i18n.getName("cy", lang), "Cypriot"); }); it("for af", function () { assert.equal(i18n.getName("af", lang), "Afghan"); }); }); }); describe("unsupported language", function () { var lang = "unsupported"; it("get name", function () { assert.equal(i18n.getName("de", lang), undefined); }); it("get names", function () { assert.equal(Object.keys(i18n.getNames(lang)).length, 0); }); }); }); });