+ )
+}
diff --git a/web/src/pages/TemplatesPage.test.tsx b/web/src/pages/TemplatesPage.test.tsx
new file mode 100644
index 0000000..9434339
--- /dev/null
+++ b/web/src/pages/TemplatesPage.test.tsx
@@ -0,0 +1,129 @@
+import { render, screen, waitFor, within, fireEvent } from "@testing-library/react"
+import userEvent from "@testing-library/user-event"
+import { MemoryRouter } from "react-router-dom"
+import { QueryClient, QueryClientProvider } from "@tanstack/react-query"
+import { TemplatesPage } from "./TemplatesPage"
+import { api } from "@/api/client"
+import { vi, beforeEach, test, expect } from "vitest"
+import type { Template } from "@/api/types"
+
+const templates: Template[] = [
+ {
+ id: "t1",
+ name: "Standard",
+ records: [{ type: "A", name: "@", ttl: 3600, values: ["1.2.3.4"] }],
+ version: 1,
+ },
+ { id: "t2", name: "Minimal", records: [], version: 1 },
+]
+
+function renderPage() {
+ const qc = new QueryClient()
+ return render(
+