diff --git a/src/pageEditor/tabs/modMetadata/ModMetadataEditor.test.tsx b/src/pageEditor/tabs/modMetadata/ModMetadataEditor.test.tsx
index 04050b73b7..1792e6ebd6 100644
--- a/src/pageEditor/tabs/modMetadata/ModMetadataEditor.test.tsx
+++ b/src/pageEditor/tabs/modMetadata/ModMetadataEditor.test.tsx
@@ -29,10 +29,18 @@ import { type ModMetadata } from "@/types/modComponentTypes";
import { screen } from "@testing-library/react";
import { modDefinitionFactory } from "@/testUtils/factories/modDefinitionFactories";
import { waitForEffect } from "@/testUtils/testHelpers";
-import { appApiMock } from "@/testUtils/appApiMock";
+import { useOptionalModDefinition } from "@/modDefinitions/modDefinitionHooks";
+import { valueToAsyncState } from "@/utils/asyncStateUtils";
+import { type SemVerString } from "@/types/registryTypes";
+
+// :shrug: ideally would mock the definitions returned from the server. But that's more complicated than it's worth,
+// because you can't just mock the /api/registry/bricks/ endpoint due to the way our tests mock the background worker
+jest.mock("@/modDefinitions/modDefinitionHooks");
+
+const useOptionalModDefinitionMock = jest.mocked(useOptionalModDefinition);
beforeEach(() => {
- appApiMock.reset();
+ useOptionalModDefinitionMock.mockReset();
});
describe("ModMetadataEditor", () => {
@@ -44,13 +52,15 @@ describe("ModMetadataEditor", () => {
_recipe: modMetadata,
});
- appApiMock
- .onGet("/api/registry/bricks/")
- .reply(200, [modDefinitionFactory({ metadata: modMetadata })]);
+ useOptionalModDefinitionMock.mockReturnValue(
+ valueToAsyncState(modDefinitionFactory({ metadata: modMetadata })),
+ );
render(, {
setupRedux(dispatch) {
- modComponentSlice.actions.UNSAFE_setModComponents([modComponent]);
+ dispatch(
+ modComponentSlice.actions.UNSAFE_setModComponents([modComponent]),
+ );
dispatch(editorActions.addModComponentFormState(formState));
dispatch(editorActions.setActiveModId(formState.modMetadata!.id));
},
@@ -71,21 +81,29 @@ describe("ModMetadataEditor", () => {
_recipe: modMetadata,
});
- appApiMock
- .onGet("/api/registry/bricks/")
- .reply(200, [modDefinitionFactory({ metadata: modMetadata })]);
+ useOptionalModDefinitionMock.mockReturnValue(
+ valueToAsyncState(
+ modDefinitionFactory({
+ metadata: {
+ ...modMetadata,
+ version: "999.999.999" as SemVerString,
+ },
+ }),
+ ),
+ );
render(, {
setupRedux(dispatch) {
- modComponentSlice.actions.UNSAFE_setModComponents([modComponent]);
+ dispatch(
+ modComponentSlice.actions.UNSAFE_setModComponents([modComponent]),
+ );
dispatch(editorActions.addModComponentFormState(formState));
dispatch(editorActions.setActiveModId(formState.modMetadata!.id));
},
});
- await waitForEffect();
-
expect(screen.getByText("re-activate the mod")).toBeInTheDocument();
+ // Should be the version of the activated mod component, not the latest version
expect(screen.getByLabelText("Version")).toHaveValue(modMetadata.version);
});
});