18F/web-design-standards

View on GitHub
packages/usa-date-picker/src/test/invalid-template-no-wrapper.spec.js

Summary

Maintainability
A
0 mins
Test Coverage
const fs = require("fs");
const path = require("path");
const assert = require("assert");
const DatePicker = require("../index");
const EVENTS = require("./events");

const INVALID_TEMPLATE_NO_WRAPPER = fs.readFileSync(
  path.join(__dirname, "/invalid-template-no-wrapper.template.html")
);

describe("Date picker button without wrapping element", () => {
  const { body } = document;
  let button;
  let error;
  let expectedError;

  beforeEach(() => {
    body.innerHTML = INVALID_TEMPLATE_NO_WRAPPER;
    DatePicker.on();
    button = body.querySelector(".usa-date-picker__button");
    expectedError = "";
    window.onerror = (message) => {
      error = message;
      return error === expectedError;
    };
  });

  afterEach(() => {
    window.onerror = null;
    body.textContent = "";
    DatePicker.off(body);
  });

  it('should throw an error when a toggle button is clicked without a wrapping "usa-date-picker"', () => {
    expectedError = "Element is missing outer .usa-date-picker";
    EVENTS.click(button);
    assert.strictEqual(error, expectedError, "caught the error");
  });
});