Home Reference Source Test Repository

spec/unit/components/header.spec.js

import $ from "jquery";
let Injector = require("inject!../../../src/components/header/header_component");

let showSearchCalled = 0;

let SearchMock = function() {};
SearchMock.prototype = { show: function() { ++showSearchCalled; } };

let Header = Injector({
  "../search": SearchMock,
  "../navigation": function() {}
});

let headerTemplate = require("../../../src/components/header/header.hbs");

let html = headerTemplate({
  type: "city",
  images: []
});

/** @test {Header} */
describe("header", () => {
  it("should render", () => {
    let { isTooBig } = Header.prototype;

    // Mock this method
    Header.prototype.isTooBig = () => true;
    let header = new Header({ el: $(html) });

    expect(header.$search.hasClass("header__search--fade")).to.be.ok();

    // Cleanup
    Header.prototype.isTooBig = isTooBig;
  });

  it("should show the search when clicked", () => {
    let $el = $(html);
    let header = new Header({ el: $el });

    $el.find(".js-lp-search").eq(0).trigger("click");

    expect(showSearchCalled).to.be(1);
  });
});