test.spec.js 1.2 KB

123456789101112131415161718192021222324252627282930
  1. import { render } from "@testing-library/svelte";
  2. import { Icon2fa } from "./src/icons.js";
  3. describe("Svelte Icon component", () => {
  4. test("should render icon component", () => {
  5. const { container } = render(Icon2fa);
  6. expect(container.getElementsByTagName("svg").length).toBeGreaterThan(0);
  7. });
  8. test("should update svg attributes when there are props passed to the component", () => {
  9. const { container } = render(Icon2fa, {
  10. size: 48,
  11. color: "red",
  12. strokeWidth: 4,
  13. });
  14. const svg = container.getElementsByTagName("svg")[0];
  15. expect(svg.getAttribute("width")).toBe("48");
  16. expect(svg.getAttribute("stroke")).toBe("red");
  17. expect(svg.getAttribute("stroke-width")).toBe("4");
  18. });
  19. test("should match snapshot", () => {
  20. const { container } = render(Icon2fa);
  21. expect(container.innerHTML).toMatchInlineSnapshot(
  22. `"<div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-2fa "><path d="M7 16h-4l3.47 -4.66a2 2 0 1 0 -3.47 -1.54m7 6.2v-8h4m-4 4l3 0m4 4v-6a2 2 0 0 1 4 0v6m-4 -3l4 0"></path></svg></div>"`
  23. );
  24. });
  25. });