import Login from "./login";
import Enzyme from "enzyme";
import { render, screen, fireEvent } from "@testing-library/react";
import Adapter from "enzyme-adapter-react-16";
import React from "react";
import { MemoryRouter } from "react-router";
import { mount } from "enzyme";

Enzyme.configure({ adapter: new Adapter() });

describe("routes using memory router", () => {
  it("should show Login component for / router (using memory router)", () => {
    const component = mount(
      <MemoryRouter initialentries="{['/login']}">
        <Login />
      </MemoryRouter>
    );
    expect(component.find(Login)).toHaveLength(1);
  });
});

test("render username", () => {
  render(<Login />);
  expect(screen.getByText(/Username/)).toBeInTheDocument();
});

test("render password", () => {
  render(<Login />);
  expect(screen.getByText(/Password/)).toBeInTheDocument();
});

it("submits", () => {
  const handleSubmit = jest.fn();
  const { getByText } = render(<Login handleSubmit={handleSubmit} />);
  fireEvent.submit(getByText("Submit"));
  expect(handleSubmit).toHaveLength(0);
});