diff --git a/services/studio/src/nmp/studio/env_mappings.py b/services/studio/src/nmp/studio/env_mappings.py
index 5ff3fe3f17..93d5604af7 100644
--- a/services/studio/src/nmp/studio/env_mappings.py
+++ b/services/studio/src/nmp/studio/env_mappings.py
@@ -138,6 +138,11 @@ class EnvMapping:
config_path="studio.feature_flags.model_compare_enabled",
default="false",
),
+ EnvMapping(
+ marker="STUDIO_UI_VITE_FF_PROMPTS_ENABLED",
+ config_path="studio.feature_flags.prompts_enabled",
+ default="false",
+ ),
EnvMapping(
marker="STUDIO_UI_VITE_FF_SAFE_SYNTHESIZER_ENABLED",
config_path="studio.feature_flags.safe_synthesizer_enabled",
diff --git a/web/packages/common/src/components/StatusBadge/StatusBadge.test.tsx b/web/packages/common/src/components/StatusBadge/StatusBadge.test.tsx
index 343abc1016..e5d4eed2f9 100644
--- a/web/packages/common/src/components/StatusBadge/StatusBadge.test.tsx
+++ b/web/packages/common/src/components/StatusBadge/StatusBadge.test.tsx
@@ -4,6 +4,7 @@
import { BadgeStatus, badgeStatus } from '@nemo/common/src/components/StatusBadge/badgeStatus';
import { StatusBadge } from '@nemo/common/src/components/StatusBadge/index';
import * as customQueries from '@nemo/common/src/tests/customQueries';
+import { getLucideIcon } from '@nemo/common/src/tests/lucideIconQueries';
import { queries, render, screen, within } from '@testing-library/react';
import { CircleCheck } from 'lucide-react';
@@ -47,9 +48,7 @@ describe('StatusBadge component', () => {
const status: BadgeStatus = 'in_progress';
render(, { queries: allQueries });
- // Use querySelector with document to find SVG (escape hatch for SVG testing)
- // eslint-disable-next-line testing-library/no-node-access
- const icon = document.querySelector('.lucide-refresh-cw');
+ const icon = getLucideIcon('refresh-cw');
expect(icon).toBeInTheDocument();
expect(icon).toHaveAttribute('width', '12px');
expect(icon).toHaveAttribute('height', '12px');
@@ -59,8 +58,7 @@ describe('StatusBadge component', () => {
// Since all current statuses have icons, we'll verify the icon exists
render();
- // eslint-disable-next-line testing-library/no-node-access
- const icon = document.querySelector('.lucide-circle-check');
+ const icon = getLucideIcon('circle-check');
expect(icon).toBeInTheDocument();
});
diff --git a/web/packages/common/src/tests/customQueries.ts b/web/packages/common/src/tests/customQueries.ts
index 22acd4e7b6..254e0bce61 100644
--- a/web/packages/common/src/tests/customQueries.ts
+++ b/web/packages/common/src/tests/customQueries.ts
@@ -3,6 +3,14 @@
import { queryHelpers, buildQueries, Matcher, MatcherOptions } from '@testing-library/react';
+export {
+ findAllByLucideIcon,
+ findByLucideIcon,
+ getAllByLucideIcon,
+ getByLucideIcon,
+ queryByLucideIcon,
+} from '@nemo/common/src/tests/lucideIconQueries';
+
// The queryAllByAttribute is a shortcut for attribute-based matchers
// You can also use document.querySelector or a combination of existing
// testing library utilities to find matching nodes for your query
diff --git a/web/packages/common/src/tests/lucideIconQueries.ts b/web/packages/common/src/tests/lucideIconQueries.ts
new file mode 100644
index 0000000000..395c2a8a37
--- /dev/null
+++ b/web/packages/common/src/tests/lucideIconQueries.ts
@@ -0,0 +1,56 @@
+// SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
+// SPDX-License-Identifier: Apache-2.0
+
+import { buildQueries, Matcher } from '@testing-library/react';
+
+/** Lucide icons render as `