diff --git a/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainCreatorPage/__tests__/error-handling.test.tsx b/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainCreatorPage/__tests__/error-handling.test.tsx
index 2ae32484f0..f91a83c2e4 100644
--- a/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainCreatorPage/__tests__/error-handling.test.tsx
+++ b/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainCreatorPage/__tests__/error-handling.test.tsx
@@ -1,5 +1,5 @@
import { describe, expect, test } from "vitest";
-import { render, screen, waitFor } from "@/tests/integrations/test-utils";
+import { render, screen } from "@/tests/integrations/test-utils";
import { MainCreatorPage } from "../MainCreatorPage";
import { server } from "@/mocks/mock-server";
import {
@@ -18,11 +18,9 @@ describe("MainCreatorPage - Error Handling", () => {
render();
- await waitFor(() => {
- expect(
- screen.getByText("Failed to load creator data", { exact: false }),
- ).toBeInTheDocument();
- });
+ expect(
+ await screen.findByText("Failed to load creator data", { exact: false }),
+ ).toBeInTheDocument();
});
test("displays error when creator agents API returns 422", async () => {
@@ -30,11 +28,9 @@ describe("MainCreatorPage - Error Handling", () => {
render();
- await waitFor(() => {
- expect(
- screen.getByText("Failed to load creator data", { exact: false }),
- ).toBeInTheDocument();
- });
+ expect(
+ await screen.findByText("Failed to load creator data", { exact: false }),
+ ).toBeInTheDocument();
});
test("displays error when API returns 500", async () => {
@@ -42,11 +38,9 @@ describe("MainCreatorPage - Error Handling", () => {
render();
- await waitFor(() => {
- expect(
- screen.getByText("Failed to load creator data", { exact: false }),
- ).toBeInTheDocument();
- });
+ expect(
+ await screen.findByText("Failed to load creator data", { exact: false }),
+ ).toBeInTheDocument();
});
test("retry button is visible on error", async () => {
@@ -54,10 +48,8 @@ describe("MainCreatorPage - Error Handling", () => {
render();
- await waitFor(() => {
- expect(
- screen.getByRole("button", { name: /try again/i }),
- ).toBeInTheDocument();
- });
+ expect(
+ await screen.findByRole("button", { name: /try again/i }),
+ ).toBeInTheDocument();
});
});
diff --git a/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainCreatorPage/__tests__/rendering.test.tsx b/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainCreatorPage/__tests__/rendering.test.tsx
index bca00f99f1..6fc5e3448c 100644
--- a/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainCreatorPage/__tests__/rendering.test.tsx
+++ b/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainCreatorPage/__tests__/rendering.test.tsx
@@ -1,5 +1,5 @@
import { describe, expect, test } from "vitest";
-import { render, screen, waitFor } from "@/tests/integrations/test-utils";
+import { render, screen } from "@/tests/integrations/test-utils";
import { MainCreatorPage } from "../MainCreatorPage";
const defaultParams = {
@@ -7,38 +7,32 @@ const defaultParams = {
};
describe("MainCreatorPage - Rendering", () => {
- test("renders creator info card", async () => {
+ test("renders creator description", async () => {
render();
- await waitFor(() => {
- expect(screen.getByTestId("creator-description")).toBeInTheDocument();
- });
+ expect(
+ await screen.findByTestId("creator-description"),
+ ).toBeInTheDocument();
});
test("renders breadcrumbs with marketplace link", async () => {
render();
- await waitFor(() => {
- expect(
- screen.getByRole("link", { name: /marketplace/i }),
- ).toBeInTheDocument();
- });
+ expect(
+ await screen.findByRole("link", { name: /marketplace/i }),
+ ).toBeInTheDocument();
});
test("renders about section", async () => {
render();
- await waitFor(() => {
- expect(screen.getByText("About")).toBeInTheDocument();
- });
+ expect(await screen.findByText("About")).toBeInTheDocument();
});
test("renders agents by creator section", async () => {
render();
- await waitFor(() => {
- expect(
- screen.getByText(/Agents by/i, { exact: false }),
- ).toBeInTheDocument();
- });
+ expect(
+ await screen.findByText(/Agents by/i, { exact: false }),
+ ).toBeInTheDocument();
});
});
diff --git a/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainMarketplacePage/__tests__/empty-state.test.tsx b/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainMarketplacePage/__tests__/empty-state.test.tsx
index e7e9e38bcf..b6502ad3a2 100644
--- a/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainMarketplacePage/__tests__/empty-state.test.tsx
+++ b/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainMarketplacePage/__tests__/empty-state.test.tsx
@@ -22,7 +22,6 @@ describe("MainMarketplacePage - Empty State", () => {
render();
- // Page should still render without crashing
expect(
await screen.findByText("Featured creators", { exact: false }),
).toBeInTheDocument();
@@ -45,7 +44,6 @@ describe("MainMarketplacePage - Empty State", () => {
render();
- // Page should still render without crashing
expect(
await screen.findByText("Featured agents", { exact: false }),
).toBeInTheDocument();
@@ -79,7 +77,6 @@ describe("MainMarketplacePage - Empty State", () => {
render();
- // Page should still render the search bar
expect(await screen.findByPlaceholderText(/search/i)).toBeInTheDocument();
});
});
diff --git a/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainMarketplacePage/__tests__/error-handling.test.tsx b/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainMarketplacePage/__tests__/error-handling.test.tsx
index aaa1f15d63..8f85f31470 100644
--- a/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainMarketplacePage/__tests__/error-handling.test.tsx
+++ b/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainMarketplacePage/__tests__/error-handling.test.tsx
@@ -1,5 +1,5 @@
import { describe, expect, test } from "vitest";
-import { render, screen, waitFor } from "@/tests/integrations/test-utils";
+import { render, screen } from "@/tests/integrations/test-utils";
import { MainMarkeplacePage } from "../MainMarketplacePage";
import { server } from "@/mocks/mock-server";
import {
@@ -14,11 +14,11 @@ describe("MainMarketplacePage - Error Handling", () => {
render();
- await waitFor(() => {
- expect(
- screen.getByText("Failed to load marketplace data", { exact: false }),
- ).toBeInTheDocument();
- });
+ expect(
+ await screen.findByText("Failed to load marketplace data", {
+ exact: false,
+ }),
+ ).toBeInTheDocument();
});
test("displays error when creators API returns 422", async () => {
@@ -26,11 +26,11 @@ describe("MainMarketplacePage - Error Handling", () => {
render();
- await waitFor(() => {
- expect(
- screen.getByText("Failed to load marketplace data", { exact: false }),
- ).toBeInTheDocument();
- });
+ expect(
+ await screen.findByText("Failed to load marketplace data", {
+ exact: false,
+ }),
+ ).toBeInTheDocument();
});
test("displays error when API returns 500", async () => {
@@ -38,11 +38,11 @@ describe("MainMarketplacePage - Error Handling", () => {
render();
- await waitFor(() => {
- expect(
- screen.getByText("Failed to load marketplace data", { exact: false }),
- ).toBeInTheDocument();
- });
+ expect(
+ await screen.findByText("Failed to load marketplace data", {
+ exact: false,
+ }),
+ ).toBeInTheDocument();
});
test("retry button is visible on error", async () => {
@@ -50,10 +50,8 @@ describe("MainMarketplacePage - Error Handling", () => {
render();
- await waitFor(() => {
- expect(
- screen.getByRole("button", { name: /try again/i }),
- ).toBeInTheDocument();
- });
+ expect(
+ await screen.findByRole("button", { name: /try again/i }),
+ ).toBeInTheDocument();
});
});
diff --git a/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainMarketplacePage/__tests__/loading-state.test.tsx b/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainMarketplacePage/__tests__/loading-state.test.tsx
index 54c5539995..1eb8b54bdb 100644
--- a/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainMarketplacePage/__tests__/loading-state.test.tsx
+++ b/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainMarketplacePage/__tests__/loading-state.test.tsx
@@ -1,12 +1,11 @@
import { describe, expect, test } from "vitest";
-import { render } from "@/tests/integrations/test-utils";
+import { render, waitFor } from "@/tests/integrations/test-utils";
import { MainMarkeplacePage } from "../MainMarketplacePage";
import { server } from "@/mocks/mock-server";
import { http, HttpResponse, delay } from "msw";
describe("MainMarketplacePage - Loading State", () => {
test("shows loading skeleton while data is being fetched", async () => {
- // Override handlers to add delay to simulate loading
server.use(
http.get("*/api/store/agents*", async () => {
await delay(500);
@@ -36,10 +35,11 @@ describe("MainMarketplacePage - Loading State", () => {
const { container } = render();
- // Check for loading skeleton elements (animated pulse elements)
- const loadingElements = container.querySelectorAll(
- '[class*="animate-pulse"]',
- );
- expect(loadingElements.length).toBeGreaterThan(0);
+ await waitFor(() => {
+ const loadingElements = container.querySelectorAll(
+ '[class*="animate-pulse"]',
+ );
+ expect(loadingElements.length).toBeGreaterThan(0);
+ });
});
});
diff --git a/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainSearchResultPage/__tests__/auth-state.test.tsx b/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainSearchResultPage/__tests__/auth-state.test.tsx
index 443feb0144..db3717a18e 100644
--- a/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainSearchResultPage/__tests__/auth-state.test.tsx
+++ b/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainSearchResultPage/__tests__/auth-state.test.tsx
@@ -1,5 +1,5 @@
import { describe, expect, test, afterEach } from "vitest";
-import { render, screen, waitFor } from "@/tests/integrations/test-utils";
+import { render, screen } from "@/tests/integrations/test-utils";
import { MainSearchResultPage } from "../MainSearchResultPage";
import {
mockAuthenticatedUser,
@@ -9,7 +9,7 @@ import {
const defaultProps = {
searchTerm: "test-search",
- sort: undefined as undefined,
+ sort: undefined,
};
describe("MainSearchResultPage - Auth State", () => {
@@ -21,17 +21,13 @@ describe("MainSearchResultPage - Auth State", () => {
mockUnauthenticatedUser();
render();
- await waitFor(() => {
- expect(screen.getByText("Results for:")).toBeInTheDocument();
- });
+ expect(await screen.findByText("Results for:")).toBeInTheDocument();
});
test("renders page correctly when logged in", async () => {
mockAuthenticatedUser();
render();
- await waitFor(() => {
- expect(screen.getByText("Results for:")).toBeInTheDocument();
- });
+ expect(await screen.findByText("Results for:")).toBeInTheDocument();
});
});
diff --git a/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainSearchResultPage/__tests__/error-handling.test.tsx b/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainSearchResultPage/__tests__/error-handling.test.tsx
index 7eee72acaa..50f4ebe3ce 100644
--- a/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainSearchResultPage/__tests__/error-handling.test.tsx
+++ b/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainSearchResultPage/__tests__/error-handling.test.tsx
@@ -1,5 +1,5 @@
import { describe, expect, test } from "vitest";
-import { render, screen, waitFor } from "@/tests/integrations/test-utils";
+import { render, screen } from "@/tests/integrations/test-utils";
import { MainSearchResultPage } from "../MainSearchResultPage";
import { server } from "@/mocks/mock-server";
import {
@@ -10,7 +10,7 @@ import { create500Handler } from "@/tests/integrations/helpers/create-500-handle
const defaultProps = {
searchTerm: "test-search",
- sort: undefined as undefined,
+ sort: undefined,
};
describe("MainSearchResultPage - Error Handling", () => {
@@ -19,11 +19,11 @@ describe("MainSearchResultPage - Error Handling", () => {
render();
- await waitFor(() => {
- expect(
- screen.getByText("Failed to load marketplace data", { exact: false }),
- ).toBeInTheDocument();
- });
+ expect(
+ await screen.findByText("Failed to load marketplace data", {
+ exact: false,
+ }),
+ ).toBeInTheDocument();
});
test("displays error when creators API returns 422", async () => {
@@ -31,11 +31,11 @@ describe("MainSearchResultPage - Error Handling", () => {
render();
- await waitFor(() => {
- expect(
- screen.getByText("Failed to load marketplace data", { exact: false }),
- ).toBeInTheDocument();
- });
+ expect(
+ await screen.findByText("Failed to load marketplace data", {
+ exact: false,
+ }),
+ ).toBeInTheDocument();
});
test("displays error when API returns 500", async () => {
@@ -43,11 +43,11 @@ describe("MainSearchResultPage - Error Handling", () => {
render();
- await waitFor(() => {
- expect(
- screen.getByText("Failed to load marketplace data", { exact: false }),
- ).toBeInTheDocument();
- });
+ expect(
+ await screen.findByText("Failed to load marketplace data", {
+ exact: false,
+ }),
+ ).toBeInTheDocument();
});
test("retry button is visible on error", async () => {
@@ -55,10 +55,8 @@ describe("MainSearchResultPage - Error Handling", () => {
render();
- await waitFor(() => {
- expect(
- screen.getByRole("button", { name: /try again/i }),
- ).toBeInTheDocument();
- });
+ expect(
+ await screen.findByRole("button", { name: /try again/i }),
+ ).toBeInTheDocument();
});
});
diff --git a/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainSearchResultPage/__tests__/no-results.test.tsx b/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainSearchResultPage/__tests__/no-results.test.tsx
index 84d35668df..1d87d9a1cb 100644
--- a/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainSearchResultPage/__tests__/no-results.test.tsx
+++ b/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainSearchResultPage/__tests__/no-results.test.tsx
@@ -1,12 +1,12 @@
import { describe, expect, test } from "vitest";
-import { render, screen, waitFor } from "@/tests/integrations/test-utils";
+import { render, screen } from "@/tests/integrations/test-utils";
import { MainSearchResultPage } from "../MainSearchResultPage";
import { server } from "@/mocks/mock-server";
import { http, HttpResponse } from "msw";
const defaultProps = {
searchTerm: "nonexistent-search-term-xyz",
- sort: undefined as undefined,
+ sort: undefined,
};
describe("MainSearchResultPage - No Results", () => {
@@ -38,11 +38,7 @@ describe("MainSearchResultPage - No Results", () => {
render();
- await waitFor(() => {
- expect(screen.getByText("Results for:")).toBeInTheDocument();
- });
-
- // Verify search term is displayed
+ expect(await screen.findByText("Results for:")).toBeInTheDocument();
expect(screen.getByText("nonexistent-search-term-xyz")).toBeInTheDocument();
});
@@ -59,22 +55,9 @@ describe("MainSearchResultPage - No Results", () => {
},
});
}),
- );
-
- render();
-
- await waitFor(() => {
- expect(
- screen.getByText("nonexistent-search-term-xyz"),
- ).toBeInTheDocument();
- });
- });
-
- test("search bar remains functional with no results", async () => {
- server.use(
- http.get("*/api/store/agents*", () => {
+ http.get("*/api/store/creators*", () => {
return HttpResponse.json({
- agents: [],
+ creators: [],
pagination: {
total_items: 0,
total_pages: 0,
@@ -87,8 +70,39 @@ describe("MainSearchResultPage - No Results", () => {
render();
- await waitFor(() => {
- expect(screen.getByPlaceholderText(/search/i)).toBeInTheDocument();
- });
+ expect(
+ await screen.findByText("nonexistent-search-term-xyz"),
+ ).toBeInTheDocument();
+ });
+
+ test("search bar is present with no results", async () => {
+ server.use(
+ http.get("*/api/store/agents*", () => {
+ return HttpResponse.json({
+ agents: [],
+ pagination: {
+ total_items: 0,
+ total_pages: 0,
+ current_page: 1,
+ page_size: 10,
+ },
+ });
+ }),
+ http.get("*/api/store/creators*", () => {
+ return HttpResponse.json({
+ creators: [],
+ pagination: {
+ total_items: 0,
+ total_pages: 0,
+ current_page: 1,
+ page_size: 10,
+ },
+ });
+ }),
+ );
+
+ render();
+
+ expect(await screen.findByPlaceholderText(/search/i)).toBeInTheDocument();
});
});
diff --git a/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainSearchResultPage/__tests__/rendering.test.tsx b/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainSearchResultPage/__tests__/rendering.test.tsx
index abefacbf03..f450e54263 100644
--- a/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainSearchResultPage/__tests__/rendering.test.tsx
+++ b/autogpt_platform/frontend/src/app/(platform)/marketplace/components/MainSearchResultPage/__tests__/rendering.test.tsx
@@ -1,27 +1,23 @@
import { describe, expect, test } from "vitest";
-import { render, screen, waitFor } from "@/tests/integrations/test-utils";
+import { render, screen } from "@/tests/integrations/test-utils";
import { MainSearchResultPage } from "../MainSearchResultPage";
const defaultProps = {
searchTerm: "test-search",
- sort: undefined as undefined,
+ sort: undefined,
};
describe("MainSearchResultPage - Rendering", () => {
test("renders search results header with search term", async () => {
render();
- await waitFor(() => {
- expect(screen.getByText("Results for:")).toBeInTheDocument();
- });
- expect(screen.getByText("test-search")).toBeInTheDocument();
+ expect(await screen.findByText("Results for:")).toBeInTheDocument();
+ expect(await screen.findByText("test-search")).toBeInTheDocument();
});
test("renders search bar", async () => {
render();
- await waitFor(() => {
- expect(screen.getByPlaceholderText(/search/i)).toBeInTheDocument();
- });
+ expect(await screen.findByPlaceholderText(/search/i)).toBeInTheDocument();
});
});
diff --git a/autogpt_platform/frontend/src/app/api/mutators/custom-mutator.ts b/autogpt_platform/frontend/src/app/api/mutators/custom-mutator.ts
index e58c4b4aaf..c86a29c72d 100644
--- a/autogpt_platform/frontend/src/app/api/mutators/custom-mutator.ts
+++ b/autogpt_platform/frontend/src/app/api/mutators/custom-mutator.ts
@@ -136,19 +136,19 @@ export const customMutator = async <
response.statusText ||
`HTTP ${response.status}`;
- const isTestEnv = process.env.NODE_ENV === 'test';
- if (!isTestEnv) {
- console.error(
- `Request failed ${environment.isServerSide() ? "on server" : "on client"}`,
- {
- status: response.status,
- method,
- url: fullUrl.replace(baseUrl, ""), // Show relative URL for cleaner logs
- errorMessage,
- responseData: responseData || "No response data",
- },
- );
- }
+ const isTestEnv = process.env.NODE_ENV === "test";
+ if (!isTestEnv) {
+ console.error(
+ `Request failed ${environment.isServerSide() ? "on server" : "on client"}`,
+ {
+ status: response.status,
+ method,
+ url: fullUrl.replace(baseUrl, ""), // Show relative URL for cleaner logs
+ errorMessage,
+ responseData: responseData || "No response data",
+ },
+ );
+ }
throw new ApiError(errorMessage, response.status, responseData);
}
diff --git a/autogpt_platform/frontend/src/tests/integrations/helpers/create-500-handler.ts b/autogpt_platform/frontend/src/tests/integrations/helpers/create-500-handler.ts
index 9190df76a1..cc28012202 100644
--- a/autogpt_platform/frontend/src/tests/integrations/helpers/create-500-handler.ts
+++ b/autogpt_platform/frontend/src/tests/integrations/helpers/create-500-handler.ts
@@ -4,7 +4,7 @@ type HttpMethod = "get" | "post" | "put" | "patch" | "delete";
interface Create500HandlerOptions {
delayMs?: number;
- body?: Record;
+ body?: unknown;
}
export function create500Handler(
diff --git a/autogpt_platform/frontend/src/tests/integrations/helpers/mock-onboarding-provider.tsx b/autogpt_platform/frontend/src/tests/integrations/helpers/mock-onboarding-provider.tsx
index f1616220c9..5c40b9af7e 100644
--- a/autogpt_platform/frontend/src/tests/integrations/helpers/mock-onboarding-provider.tsx
+++ b/autogpt_platform/frontend/src/tests/integrations/helpers/mock-onboarding-provider.tsx
@@ -18,14 +18,18 @@ const MockOnboardingContext = createContext<{
});
export function useOnboarding(
- step?: number,
- completeStep?: PostV1CompleteOnboardingStepStep,
+ _step?: number,
+ _completeStep?: PostV1CompleteOnboardingStepStep,
) {
const context = useContext(MockOnboardingContext);
return context;
}
-export function MockOnboardingProvider({ children }: { children: ReactNode }) {
+interface Props {
+ children: ReactNode;
+}
+
+export function MockOnboardingProvider({ children }: Props) {
return (
= {}): User {
user: mergedUser,
isUserLoading: false,
hasLoadedUser: true,
+ isValidating: false,
});
return mergedUser;
@@ -28,6 +29,7 @@ export function mockUnauthenticatedUser(): void {
user: null,
isUserLoading: false,
hasLoadedUser: true,
+ isValidating: false,
});
}
@@ -36,5 +38,6 @@ export function resetAuthState(): void {
user: null,
isUserLoading: true,
hasLoadedUser: false,
+ isValidating: false,
});
}
diff --git a/autogpt_platform/frontend/src/tests/integrations/helpers/suppress-react-query-update-warning.ts b/autogpt_platform/frontend/src/tests/integrations/helpers/suppress-react-query-update-warning.ts
new file mode 100644
index 0000000000..0ba7e637aa
--- /dev/null
+++ b/autogpt_platform/frontend/src/tests/integrations/helpers/suppress-react-query-update-warning.ts
@@ -0,0 +1,34 @@
+export function suppressReactQueryUpdateWarning() {
+ const originalError = console.error;
+
+ console.error = (...args: unknown[]) => {
+ const isActWarning = args.some(
+ (arg) =>
+ typeof arg === "string" &&
+ (arg.includes("not wrapped in act(...)") ||
+ (arg.includes("An update to") && arg.includes("inside a test"))),
+ );
+
+ if (isActWarning) {
+ const fullMessage = args
+ .map((arg) => String(arg))
+ .join("\n")
+ .toLowerCase();
+
+ const isReactQueryRelated =
+ fullMessage.includes("queryclientprovider") ||
+ fullMessage.includes("react query") ||
+ fullMessage.includes("@tanstack/react-query");
+
+ if (isReactQueryRelated || fullMessage.includes("testproviders")) {
+ return;
+ }
+ }
+
+ originalError(...args);
+ };
+
+ return () => {
+ console.error = originalError;
+ };
+}
diff --git a/autogpt_platform/frontend/src/tests/integrations/helpers/supress-react-query-update-warning.ts b/autogpt_platform/frontend/src/tests/integrations/helpers/supress-react-query-update-warning.ts
deleted file mode 100644
index af00636ff6..0000000000
--- a/autogpt_platform/frontend/src/tests/integrations/helpers/supress-react-query-update-warning.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-// Suppresses expected act(...) warnings from React Query and component async updates.
-// These warnings are normal behavior with React Query and don't indicate test failures.
-export function suppressReactQueryUpdateWarning() {
- const originalError = console.error;
-
- console.error = (...args: unknown[]) => {
- const isActWarning = args.some(
- (arg) =>
- typeof arg === "string" &&
- (arg.includes("not wrapped in act(...)") ||
- arg.includes("An update to") && arg.includes("inside a test"))
- );
-
- if (isActWarning) {
- const fullMessage = args
- .map((arg) => String(arg))
- .join("\n")
- .toLowerCase();
-
- const isReactQueryRelated =
- fullMessage.includes("queryclientprovider") ||
- fullMessage.includes("react query") ||
- fullMessage.includes("@tanstack/react-query");
-
- if (isReactQueryRelated || fullMessage.includes("testproviders")) {
- return;
- }
- }
-
- originalError(...args);
- };
-
- // Return cleanup function
- return () => {
- console.error = originalError;
- };
- }
\ No newline at end of file
diff --git a/autogpt_platform/frontend/src/tests/integrations/test-utils.tsx b/autogpt_platform/frontend/src/tests/integrations/test-utils.tsx
index 17a99d8af0..dde422441c 100644
--- a/autogpt_platform/frontend/src/tests/integrations/test-utils.tsx
+++ b/autogpt_platform/frontend/src/tests/integrations/test-utils.tsx
@@ -1,8 +1,11 @@
import { BackendAPIProvider } from "@/lib/autogpt-server-api/context";
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
-import { render, RenderOptions, act } from "@testing-library/react";
+import { render, RenderOptions } from "@testing-library/react";
import { ReactElement, ReactNode } from "react";
-import { MockOnboardingProvider, useOnboarding as mockUseOnboarding } from "./helpers/mock-onboarding-provider";
+import {
+ MockOnboardingProvider,
+ useOnboarding as mockUseOnboarding,
+} from "./helpers/mock-onboarding-provider";
vi.mock("@/providers/onboarding/onboarding-provider", () => ({
useOnboarding: mockUseOnboarding,
diff --git a/autogpt_platform/frontend/src/tests/integrations/vitest.setup.tsx b/autogpt_platform/frontend/src/tests/integrations/vitest.setup.tsx
index 6db372d958..7f8fac0276 100644
--- a/autogpt_platform/frontend/src/tests/integrations/vitest.setup.tsx
+++ b/autogpt_platform/frontend/src/tests/integrations/vitest.setup.tsx
@@ -3,16 +3,22 @@ import { server } from "@/mocks/mock-server";
import { mockNextjsModules } from "./setup-nextjs-mocks";
import { mockSupabaseRequest } from "./mock-supabase-request";
import "@testing-library/jest-dom";
-import { suppressReactQueryUpdateWarning } from "./helpers/supress-react-query-update-warning";
+import { suppressReactQueryUpdateWarning } from "./helpers/suppress-react-query-update-warning";
+
+let restoreConsoleError: (() => void) | null = null;
beforeAll(() => {
mockNextjsModules();
mockSupabaseRequest();
- const restoreConsoleError = suppressReactQueryUpdateWarning();
- afterAll(() => {
- restoreConsoleError();
- });
- return server.listen({ onUnhandledRequest: "error" });
+ restoreConsoleError = suppressReactQueryUpdateWarning();
+ server.listen({ onUnhandledRequest: "error" });
+});
+
+afterEach(() => {
+ server.resetHandlers();
+});
+
+afterAll(() => {
+ restoreConsoleError?.();
+ server.close();
});
-afterEach(() => {server.resetHandlers()});
-afterAll(() => server.close());
diff --git a/autogpt_platform/frontend/src/tests/marketplace-agent.spec.ts b/autogpt_platform/frontend/src/tests/marketplace-agent.spec.ts
index 2ba7c56bca..92bb2b6d57 100644
--- a/autogpt_platform/frontend/src/tests/marketplace-agent.spec.ts
+++ b/autogpt_platform/frontend/src/tests/marketplace-agent.spec.ts
@@ -2,7 +2,7 @@ import { expect, test } from "@playwright/test";
import { getTestUserWithLibraryAgents } from "./credentials";
import { LoginPage } from "./pages/login.page";
import { MarketplacePage } from "./pages/marketplace.page";
-import { hasUrl, isVisible, matchesUrl } from "./utils/assertion";
+import { hasUrl, isVisible } from "./utils/assertion";
import { getSelectors } from "./utils/selectors";
function escapeRegExp(value: string) {