loading_test.tsx 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import { cleanup, assertEquals, render, act } from "./setup.ts";
  2. import Loading from "../../islands/Loading.tsx";
  3. Deno.test({
  4. name: "Loading - initially hidden",
  5. fn() {
  6. const { container } = render(<Loading />);
  7. const overlay = container.firstElementChild!;
  8. assertEquals(overlay.className.includes("hidden"), true);
  9. cleanup();
  10. },
  11. sanitizeResources: false,
  12. sanitizeOps: false,
  13. });
  14. Deno.test({
  15. name: "Loading - registers globalThis.$loading",
  16. fn() {
  17. render(<Loading />);
  18. assertEquals(typeof globalThis.$loading, "object");
  19. assertEquals(typeof globalThis.$loading!.show, "function");
  20. assertEquals(typeof globalThis.$loading!.hide, "function");
  21. cleanup();
  22. },
  23. sanitizeResources: false,
  24. sanitizeOps: false,
  25. });
  26. Deno.test({
  27. name: "Loading - show() makes visible",
  28. fn() {
  29. const { container } = render(<Loading />);
  30. act(() => {
  31. globalThis.$loading!.show();
  32. });
  33. const overlay = container.firstElementChild!;
  34. assertEquals(overlay.className.includes("hidden"), false);
  35. cleanup();
  36. },
  37. sanitizeResources: false,
  38. sanitizeOps: false,
  39. });
  40. Deno.test({
  41. name: "Loading - hide() hides again",
  42. fn() {
  43. const { container } = render(<Loading />);
  44. act(() => {
  45. globalThis.$loading!.show();
  46. });
  47. act(() => {
  48. globalThis.$loading!.hide();
  49. });
  50. const overlay = container.firstElementChild!;
  51. assertEquals(overlay.className.includes("hidden"), true);
  52. cleanup();
  53. },
  54. sanitizeResources: false,
  55. sanitizeOps: false,
  56. });
  57. Deno.test({
  58. name: "Loading - cleans up globalThis.$loading on unmount",
  59. fn() {
  60. render(<Loading />);
  61. assertEquals(globalThis.$loading !== undefined, true);
  62. cleanup();
  63. assertEquals(globalThis.$loading, undefined);
  64. },
  65. sanitizeResources: false,
  66. sanitizeOps: false,
  67. });