renderer.test.tsx 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import { describe, it, expect } from "vitest";
  2. import React from "react";
  3. import { Renderer } from "./renderer";
  4. describe("Renderer", () => {
  5. it("renders null for null spec", () => {
  6. const element = React.createElement(Renderer, {
  7. spec: null,
  8. registry: {},
  9. });
  10. expect(element).toBeDefined();
  11. expect(element.props.spec).toBeNull();
  12. });
  13. it("renders null for spec without root", () => {
  14. const element = React.createElement(Renderer, {
  15. spec: { root: "", elements: {} },
  16. registry: {},
  17. });
  18. expect(element).toBeDefined();
  19. });
  20. it("accepts loading prop", () => {
  21. const element = React.createElement(Renderer, {
  22. spec: null,
  23. registry: {},
  24. loading: true,
  25. });
  26. expect(element.props.loading).toBe(true);
  27. });
  28. it("accepts fallback prop", () => {
  29. const Fallback = () =>
  30. React.createElement("div", null, "Unknown component");
  31. const element = React.createElement(Renderer, {
  32. spec: null,
  33. registry: {},
  34. fallback: Fallback,
  35. });
  36. expect(element.props.fallback).toBe(Fallback);
  37. });
  38. });