test(web): assert partial-create passes fieldsError state to the edit route
This commit is contained in:
@@ -2,17 +2,23 @@ import { expect, test } from "vitest";
|
||||
import { screen, waitFor } from "@testing-library/react";
|
||||
import userEvent from "@testing-library/user-event";
|
||||
import { http, HttpResponse } from "msw";
|
||||
import { Routes, Route } from "react-router-dom";
|
||||
import { Routes, Route, useLocation } from "react-router-dom";
|
||||
import { server } from "../test/server";
|
||||
import { renderApp } from "../test/render";
|
||||
import { ObjectNewPage } from "./object-new-page";
|
||||
|
||||
function EditStub() {
|
||||
const location = useLocation();
|
||||
const flagged = (location.state as { fieldsError?: boolean } | null)?.fieldsError === true;
|
||||
return <div>edit page{flagged ? " (fields error)" : ""}</div>;
|
||||
}
|
||||
|
||||
function tree() {
|
||||
return (
|
||||
<Routes>
|
||||
<Route path="/objects/new" element={<ObjectNewPage />} />
|
||||
<Route path="/objects/:id" element={<div>detail view</div>} />
|
||||
<Route path="/objects/:id/edit" element={<div>edit page</div>} />
|
||||
<Route path="/objects/:id/edit" element={<EditStub />} />
|
||||
</Routes>
|
||||
);
|
||||
}
|
||||
@@ -61,5 +67,5 @@ test("partial create: fields PUT fails -> navigate to edit with an error banner"
|
||||
await userEvent.type(screen.getByLabelText(/inscription/i), "x");
|
||||
await userEvent.click(screen.getByRole("button", { name: /create object/i }));
|
||||
|
||||
await waitFor(() => expect(screen.getByText("edit page")).toBeInTheDocument());
|
||||
await waitFor(() => expect(screen.getByText(/edit page \(fields error\)/i)).toBeInTheDocument());
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user