renderer.test.tsx 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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 = () => React.createElement("div", null, "Unknown");
  30. const element = React.createElement(Renderer, {
  31. spec: null,
  32. registry: {},
  33. fallback: Fallback,
  34. });
  35. expect(element.props.fallback).toBe(Fallback);
  36. });
  37. it("merges standard components by default", () => {
  38. const element = React.createElement(Renderer, {
  39. spec: null,
  40. includeStandard: true,
  41. });
  42. expect(element.props.includeStandard).toBe(true);
  43. });
  44. });