/**
 * TEAM: frontend_infra
 *
 * @flow
 */
// TODO: Fix this eslint issue on next edit. This is an autogenerated comment.
// eslint-disable-next-line flexport/no-legacy-dependencies
import {mount} from "enzyme";

import PhoneNumber from "../PhoneNumber";

function mountPhoneNumber(propOverrides: {phoneNumber: string, ...}) {
  const mergedProps = {
    phoneNumber: propOverrides.phoneNumber || "8553539123",
  };
  return mount(<PhoneNumber {...mergedProps} />);
}

const getANode = (phoneNumber: any) => phoneNumber.find("a").get(0);
describe("PhoneNumber", () => {
  describe("links to the correct phone number", () => {
    it("Plain US phone numbers link properly", () => {
      const phoneNumber = mountPhoneNumber({});
      expect(getANode(phoneNumber).props.href).toBe("tel:8553539123");
    });
    it("Formatted US phone numbers link properly", () => {
      const phoneNumber = mountPhoneNumber({phoneNumber: "(855) 353-9123"});
      expect(getANode(phoneNumber).props.href).toBe("tel:8553539123");
    });
    it("Alphabetical phone numbers link properly", () => {
      const phoneNumber = mountPhoneNumber({phoneNumber: "1ADGJMPTWB"});
      expect(getANode(phoneNumber).props.href).toBe("tel:1234567892");
    });
    it("Foreign phone numbers link properly", () => {
      const phoneNumber = mountPhoneNumber({
        phoneNumber: "+49 (0) 40 8740 9001",
      });
      expect(getANode(phoneNumber).props.href).toBe("tel:+4904087409001");
    });
  });
});
