"use strict"; describe("nationalMode:", function() { beforeEach(function() { intlSetup(); }); afterEach(function() { intlTeardown(); }); describe("init plugin with no value", function() { beforeEach(function() { // must be in DOM for focus to work input = $("").appendTo("body"); iti = window.intlTelInput(input[0], { nationalMode: true, }); }); it("defaults to no dial code", function() { expect(getInputVal()).toEqual(""); }); it("focusing the input does not insert the dial code", function() { triggerInputEvent("focus"); expect(getInputVal()).toEqual(""); }); it("selecting another country does not insert the dial code", function() { selectFlag("gb"); expect(getInputVal()).toEqual(""); }); it("but typing a dial code does still update the selected country", function() { input.val("+"); triggerKeyOnInput("4"); triggerKeyOnInput("4"); expect(getSelectedFlagElement()).toHaveClass("gb"); }); }); describe("init plugin with US national number and setCountry=us", function() { var nationalNum = "702 418 1234"; beforeEach(function() { input = $(""); iti = window.intlTelInput(input[0], { nationalMode: true, }); iti.setCountry("us"); }); it("displays the number and has US flag selected", function() { expect(getInputVal()).toEqual(nationalNum); expect(getSelectedFlagElement()).toHaveClass("us"); }); it("changing to canadian area code updates flag", function() { input.val("204 555 555"); triggerKeyOnInput("5"); // trigger update flag expect(getSelectedFlagElement()).toHaveClass("ca"); }); }); describe("init plugin with intl number", function() { var intlNumber = "+44 7733 123456"; beforeEach(function() { input = $(""); iti = window.intlTelInput(input[0], { nationalMode: true, }); }); it("displays the number and selects the right flag", function() { expect(getInputVal()).toEqual(intlNumber); expect(getSelectedFlagElement()).toHaveClass("gb"); }); it("changing to another intl number updates the flag", function() { input.val("+34 5555555"); triggerKeyOnInput("5"); // trigger update flag expect(getSelectedFlagElement()).toHaveClass("es"); }); }); });