From dd9878e56268d0b23ef6d4f2a305856be29154b9 Mon Sep 17 00:00:00 2001 From: mortezaei Date: Wed, 26 Aug 2026 16:20:03 +0330 Subject: [PATCH] fix icon --- .../[slug]/question-detail-client.test.tsx | 101 ++++++++++++++++++ .../[slug]/question-detail-client.tsx | 20 ++-- src/icons.tsx | 5 +- 3 files changed, 116 insertions(+), 10 deletions(-) diff --git a/src/app/questions-list/[slug]/question-detail-client.test.tsx b/src/app/questions-list/[slug]/question-detail-client.test.tsx index b51bcde..7594eac 100644 --- a/src/app/questions-list/[slug]/question-detail-client.test.tsx +++ b/src/app/questions-list/[slug]/question-detail-client.test.tsx @@ -402,4 +402,105 @@ describe("QuestionDetailClient Validation", () => { expect(screen.getByRole("status")).toBeDefined(); expect(document.querySelector(".shimmer-bg")).toBeNull(); }); + + it("never renders TestIntroPage for normal profile sections", () => { + const normalSectionItem = { + slug: "personal_identity", + title: "مشخصات فردی و هویتی", + questions: [ + { + id: "first_name", + title: "نام", + type: "text", + order: 1, + required: true, + isVisible: true, + private: false, + description: "", + tooltip: "", + extras: {}, + options: [], + }, + ], + }; + (convertOverviewToFrontendItems as any).mockReturnValue([ + { + slug: "personal_identity", + title: "مشخصات فردی و هویتی", + questions: [], + }, + ]); + (useFormSectionQuery as any).mockReturnValue({ + data: { + section: { cards: [] }, + answers: {}, + section_progress: { completion_percent: 0 }, + }, + isLoading: false, + }); + (mapBackendSectionToFrontend as any).mockReturnValue(normalSectionItem); + + const queryClient = new QueryClient({ + defaultOptions: { queries: { retry: false } }, + }); + + render( + + + , + ); + + // Question input is rendered directly + expect(screen.getByText("نام")).toBeDefined(); + // TestIntroPage elements (hero image, Start button) are NOT present + expect(document.querySelector("img[src*='test-intro-hero']")).toBeNull(); + expect(screen.queryByRole("button", { name: "Start" })).toBeNull(); + }); + + it("renders TestIntroPage for personality_test assessment", () => { + (convertOverviewToFrontendItems as any).mockReturnValue([ + { + slug: "personality_test", + title: "آزمون کتل", + estimate: "15 min", + questions: [], + }, + ]); + (useCattellQuestionsQuery as any).mockReturnValue({ + data: { questions: [{ id: 1, text: "Q1", options: ["A", "B", "C"] }] }, + isLoading: false, + isError: false, + }); + + const queryClient = new QueryClient({ + defaultOptions: { queries: { retry: false } }, + }); + + render( + + + , + ); + + // TestIntroPage elements (Start button and title) are present + expect(screen.getAllByText("آزمون کتل").length).toBeGreaterThanOrEqual(1); + expect(document.querySelector("img[src*='test-intro-hero']")).not.toBeNull(); + expect(screen.getByRole("button", { name: "Start" })).toBeDefined(); + }); }); diff --git a/src/app/questions-list/[slug]/question-detail-client.tsx b/src/app/questions-list/[slug]/question-detail-client.tsx index 0283ecd..d408922 100644 --- a/src/app/questions-list/[slug]/question-detail-client.tsx +++ b/src/app/questions-list/[slug]/question-detail-client.tsx @@ -308,9 +308,14 @@ export default function QuestionDetailClient({ }, [itemSlug, isTestStarted, profileId]); const isCattellSlug = - itemSlug === "personality_test" || itemSlug === "cattell_test"; + itemSlug === "personality_test" || + itemSlug === "cattell_test" || + itemSlug === "cattell" || + itemSlug === "personality"; const isGlasserSlug = - itemSlug === "glasser_5_needs_test" || itemSlug === "glasser_test"; + itemSlug === "glasser_5_needs_test" || + itemSlug === "glasser_test" || + itemSlug === "glasser"; const isAssessment = isCattellSlug || isGlasserSlug; const [isCompletedSheetOpen, setIsCompletedSheetOpen] = useState(false); @@ -365,12 +370,12 @@ export default function QuestionDetailClient({ } return overviewItem; }, [isAssessment, overviewItem, sectionResponse]); - const isSchemaLoading = isAssessment - ? isOverviewLoading - : !sectionResponse && (isOverviewLoading || isSectionLoading); const isSchemaError = isAssessment ? isOverviewError : (isOverviewError || isSectionError) && !sectionResponse; + const isSchemaLoading = isAssessment + ? isOverviewLoading + : !sectionResponse && !isSchemaError; const cattellQuery = useCattellQuestionsQuery(locale, { enabled: isCattellSlug && isTestStarted, @@ -644,7 +649,7 @@ export default function QuestionDetailClient({ return null; } - if (item && item.questions.length === 0) { + if (isAssessment) { if (isTestStarted) { const isQuestionsLoading = isCattellSlug ? cattellQuery.isLoading @@ -758,8 +763,7 @@ export default function QuestionDetailClient({ ); } - const bulletKey = - item.slug === "glasser_5_needs_test" ? "glasser" : "personality"; + const bulletKey = isGlasserSlug ? "glasser" : "personality"; const bullets = bulletKey === "glasser" ? [ diff --git a/src/icons.tsx b/src/icons.tsx index 5efcbc2..3223b8e 100644 --- a/src/icons.tsx +++ b/src/icons.tsx @@ -66,8 +66,9 @@ const PATHS: Record = { diamond: '', /* Documents, Media & Location */ - file: '', - document: '', + file: '', + document: '', + terms: '', mapPin: '', upload: '', download: '',