/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at . */ import React from "react"; import { shallow } from "enzyme"; import PreviewFunction from "../PreviewFunction"; describe("PreviewFunction", () => { it("should return a span", () => { const item = {}; const returnedSpan = shallow(); expect(returnedSpan).toMatchSnapshot(); expect(returnedSpan.name()).toEqual("span"); }); it('should return a span with a class of "function-signature"', () => { const item = {}; const returnedSpan = shallow(); expect(returnedSpan.hasClass("function-signature")).toBe(true); }); it("should return a span with 3 children", () => { const item = {}; const returnedSpan = shallow(); expect(returnedSpan.children()).toHaveLength(3); }); describe("function name", () => { it("should be a span", () => { const item = {}; const returnedSpan = shallow(); expect( returnedSpan .children() .first() .name() ).toEqual("span"); }); it('should have a "function-name" class', () => { const item = {}; const returnedSpan = shallow(); expect( returnedSpan .children() .first() .hasClass("function-name") ).toBe(true); }); it("should be be set to userDisplayName if defined", () => { const item = { userDisplayName: "chuck", displayName: "norris" }; const returnedSpan = shallow(); expect( returnedSpan .children() .first() .first() .text() ).toEqual("chuck"); }); it('should use displayName if defined & no "userDisplayName" exist', () => { const item = { displayName: "norris", name: "last" }; const returnedSpan = shallow(); expect( returnedSpan .children() .first() .first() .text() ).toEqual("norris"); }); it('should use to name if no "userDisplayName"/"displayName" exist', () => { const item = { name: "last" }; const returnedSpan = shallow(); expect( returnedSpan .children() .first() .first() .text() ).toEqual("last"); }); }); describe("render parentheses", () => { let leftParen; let rightParen; beforeAll(() => { const item = {}; const returnedSpan = shallow(); const children = returnedSpan.children(); leftParen = returnedSpan.childAt(1); rightParen = returnedSpan.childAt(children.length - 1); }); it("should be spans", () => { expect(leftParen.name()).toEqual("span"); expect(rightParen.name()).toEqual("span"); }); it("should create a left paren", () => { expect(leftParen.text()).toEqual("("); }); it("should create a right paren", () => { expect(rightParen.text()).toEqual(")"); }); }); describe("render parameters", () => { let returnedSpan; let children; beforeAll(() => { const item = { parameterNames: ["one", "two", "three"] }; returnedSpan = shallow(); children = returnedSpan.children(); }); it("should render spans according to the dynamic params given", () => { expect(children).toHaveLength(8); }); it("should render the parameters names", () => { expect(returnedSpan.childAt(2).text()).toEqual("one"); }); it("should render the parameters commas", () => { expect(returnedSpan.childAt(3).text()).toEqual(", "); }); }); });