+const uiMocks = vi.hoisted(() => ({
+ Tooltip: vi.fn(({ children, title, content, placement, ...props }: any) => (
+
{children}
-
{overlay || title}
+
{content || title}
- )
+ ))
}))
+vi.mock('@cherrystudio/ui', () => uiMocks)
+
const originalWindowOpen = window.open
describe('CitationTooltip', () => {
@@ -87,22 +84,6 @@ describe('CitationTooltip', () => {
expect(favicon).toHaveAttribute('alt', 'Example Title')
})
- it('should pass correct props to Tooltip component', () => {
- const citation = createCitationData()
- renderCitationTooltip(citation)
-
- const tooltip = screen.getByTestId('tooltip-wrapper')
- expect(tooltip).toHaveAttribute('data-placement', 'top')
- expect(tooltip).toHaveAttribute('data-color', 'var(--color-background)')
-
- const styles = JSON.parse(tooltip.getAttribute('data-styles') || '{}')
- expect(styles.body).toEqual({
- border: '1px solid var(--color-border)',
- padding: '12px',
- borderRadius: '8px'
- })
- })
-
it('should match snapshot', () => {
const citation = createCitationData()
const { container } = render(
diff --git a/src/renderer/src/pages/home/Markdown/__tests__/Hyperlink.test.tsx b/src/renderer/src/pages/home/Markdown/__tests__/Hyperlink.test.tsx
index 8be594af8..664b43c04 100644
--- a/src/renderer/src/pages/home/Markdown/__tests__/Hyperlink.test.tsx
+++ b/src/renderer/src/pages/home/Markdown/__tests__/Hyperlink.test.tsx
@@ -102,7 +102,6 @@ describe('Hyperlink', () => {
const popover = screen.getByTestId('popover')
expect(popover).toBeInTheDocument()
expect(popover).toHaveAttribute('data-arrow', 'false')
- expect(popover).toHaveAttribute('data-placement', 'top')
// Content includes decoded url text and favicon with hostname
expect(screen.getByTestId('favicon')).toHaveAttribute('data-hostname', 'domain.com')
diff --git a/src/renderer/src/pages/home/Markdown/__tests__/Table.test.tsx b/src/renderer/src/pages/home/Markdown/__tests__/Table.test.tsx
index c6878b42e..235efc6db 100644
--- a/src/renderer/src/pages/home/Markdown/__tests__/Table.test.tsx
+++ b/src/renderer/src/pages/home/Markdown/__tests__/Table.test.tsx
@@ -33,7 +33,10 @@ vi.mock('@renderer/components/Icons', () => ({
}))
vi.mock('lucide-react', () => ({
- Check: ({ size }: { size: number }) =>
+ Check: ({ size }: { size: number }) =>
,
+ CheckIcon: ({ size }: { size: number }) =>
,
+ CircleXIcon: () =>
error,
+ AlertTriangleIcon: () =>
alert
}))
vi.mock('react-i18next', () => ({
@@ -42,9 +45,9 @@ vi.mock('react-i18next', () => ({
})
}))
-vi.mock('antd', () => ({
- Tooltip: ({ children, title }: any) => (
-
+vi.mock('@cherrystudio/ui', () => ({
+ Tooltip: ({ children, title, content }: any) => (
+
{children}
)
diff --git a/src/renderer/src/pages/home/Markdown/__tests__/__snapshots__/CitationTooltip.test.tsx.snap b/src/renderer/src/pages/home/Markdown/__tests__/__snapshots__/CitationTooltip.test.tsx.snap
index f11d52a83..9b11df79b 100644
--- a/src/renderer/src/pages/home/Markdown/__tests__/__snapshots__/CitationTooltip.test.tsx.snap
+++ b/src/renderer/src/pages/home/Markdown/__tests__/__snapshots__/CitationTooltip.test.tsx.snap
@@ -47,9 +47,7 @@ exports[`CitationTooltip > basic rendering > should match snapshot 1`] = `
}
diff --git a/src/renderer/src/pages/home/Markdown/__tests__/__snapshots__/Hyperlink.test.tsx.snap b/src/renderer/src/pages/home/Markdown/__tests__/__snapshots__/Hyperlink.test.tsx.snap
index 84c01bd9f..07a3e27a8 100644
--- a/src/renderer/src/pages/home/Markdown/__tests__/__snapshots__/Hyperlink.test.tsx.snap
+++ b/src/renderer/src/pages/home/Markdown/__tests__/__snapshots__/Hyperlink.test.tsx.snap
@@ -4,7 +4,6 @@ exports[`Hyperlink > should match snapshot for normal url 1`] = `
diff --git a/src/renderer/src/pages/home/Messages/Blocks/ThinkingBlock.tsx b/src/renderer/src/pages/home/Messages/Blocks/ThinkingBlock.tsx
index 07a813a41..7e7d67e74 100644
--- a/src/renderer/src/pages/home/Messages/Blocks/ThinkingBlock.tsx
+++ b/src/renderer/src/pages/home/Messages/Blocks/ThinkingBlock.tsx
@@ -1,10 +1,11 @@
import { CheckOutlined } from '@ant-design/icons'
+import { Tooltip } from '@cherrystudio/ui'
import { usePreference } from '@data/hooks/usePreference'
import { loggerService } from '@logger'
import ThinkingEffect from '@renderer/components/ThinkingEffect'
import { useTemporaryValue } from '@renderer/hooks/useTemporaryValue'
import { MessageBlockStatus, type ThinkingMessageBlock } from '@renderer/types/newMessage'
-import { Collapse, Tooltip } from 'antd'
+import { Collapse } from 'antd'
import { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react'
import { useTranslation } from 'react-i18next'
import styled from 'styled-components'
@@ -81,7 +82,7 @@ const ThinkingBlock: React.FC
= ({ block }) => {
fontSize
}}>
{!isThinking && (
-
+
{
diff --git a/src/renderer/src/pages/home/Messages/Blocks/__tests__/ThinkingBlock.test.tsx b/src/renderer/src/pages/home/Messages/Blocks/__tests__/ThinkingBlock.test.tsx
index 84c7eadaa..96da357c5 100644
--- a/src/renderer/src/pages/home/Messages/Blocks/__tests__/ThinkingBlock.test.tsx
+++ b/src/renderer/src/pages/home/Messages/Blocks/__tests__/ThinkingBlock.test.tsx
@@ -42,17 +42,20 @@ vi.mock('antd', () => ({
))}
),
- Tooltip: ({ title, children, mouseEnterDelay }: any) => (
-
- {children}
-
- ),
message: {
success: vi.fn(),
error: vi.fn()
}
}))
+vi.mock('@cherrystudio/ui', () => ({
+ Tooltip: ({ title, children, mouseEnterDelay }: any) => (
+
+ {children}
+
+ )
+}))
+
// Mock icons
vi.mock('@ant-design/icons', () => ({
CheckOutlined: ({ style }: any) => (
@@ -68,7 +71,10 @@ vi.mock('lucide-react', () => ({
💡
),
- ChevronRight: (props: any) =>
+ ChevronRight: (props: any) =>
,
+ CheckIcon: () =>
check,
+ CircleXIcon: () =>
error,
+ AlertTriangleIcon: () =>
alert
}))
// Mock motion
diff --git a/src/renderer/src/pages/home/Messages/Blocks/__tests__/__snapshots__/ThinkingBlock.test.tsx.snap b/src/renderer/src/pages/home/Messages/Blocks/__tests__/__snapshots__/ThinkingBlock.test.tsx.snap
index 6b263d581..89b67de13 100644
--- a/src/renderer/src/pages/home/Messages/Blocks/__tests__/__snapshots__/ThinkingBlock.test.tsx.snap
+++ b/src/renderer/src/pages/home/Messages/Blocks/__tests__/__snapshots__/ThinkingBlock.test.tsx.snap
@@ -85,9 +85,7 @@ exports[`ThinkingBlock > basic rendering > should match snapshot 1`] = `
style="font-family: var(--font-family); font-size: 14px;"
>
diff --git a/src/renderer/src/pages/home/Tabs/components/OpenAISettingsGroup.tsx b/src/renderer/src/pages/home/Tabs/components/OpenAISettingsGroup.tsx
index e752f450b..aaae0925a 100644
--- a/src/renderer/src/pages/home/Tabs/components/OpenAISettingsGroup.tsx
+++ b/src/renderer/src/pages/home/Tabs/components/OpenAISettingsGroup.tsx
@@ -1,3 +1,4 @@
+import { HelpTooltip } from '@cherrystudio/ui'
import Selector from '@renderer/components/Selector'
import {
isSupportedReasoningEffortOpenAIModel,
@@ -14,8 +15,6 @@ import { setOpenAISummaryText, setOpenAIVerbosity } from '@renderer/store/settin
import type { Model, OpenAIServiceTier, OpenAISummaryText, ServiceTier } from '@renderer/types'
import { GroqServiceTiers, OpenAIServiceTiers, SystemProviderIds } from '@renderer/types'
import type { OpenAIVerbosity } from '@types'
-import { Tooltip } from 'antd'
-import { CircleHelp } from 'lucide-react'
import type { FC } from 'react'
import { useCallback, useEffect, useMemo } from 'react'
import { useTranslation } from 'react-i18next'
@@ -167,9 +166,7 @@ const OpenAISettingsGroup: FC
= ({ model, providerId, SettingGroup, Setti
{t('settings.openai.service_tier.title')}{' '}
-
-
-
+
= ({ model, providerId, SettingGroup, Setti
{t('settings.openai.summary_text_mode.title')}{' '}
-
-
-
+
= ({ model, providerId, SettingGroup, Setti
{isSupportVerbosity && (
- {t('settings.openai.verbosity.title')}{' '}
-
-
-
+ {t('settings.openai.verbosity.title')}
= ({ selectedBase }) => {
-
+
{base.model.name}
diff --git a/src/renderer/src/pages/knowledge/__tests__/AdvancedSettingsPanel.test.tsx b/src/renderer/src/pages/knowledge/__tests__/AdvancedSettingsPanel.test.tsx
index 8bb50c250..053936899 100644
--- a/src/renderer/src/pages/knowledge/__tests__/AdvancedSettingsPanel.test.tsx
+++ b/src/renderer/src/pages/knowledge/__tests__/AdvancedSettingsPanel.test.tsx
@@ -25,7 +25,7 @@ const mocks = vi.hoisted(() => {
}
})
-vi.mock('@renderer/components/TooltipIcons', () => ({
+vi.mock('@cherrystudio/ui', () => ({
InfoTooltip: ({ title }: { title: string }) => {mocks.i18n.t(title)}
}))
@@ -36,7 +36,10 @@ vi.mock('react-i18next', () => ({
}))
vi.mock('lucide-react', () => ({
- TriangleAlert: () => warning
+ TriangleAlert: () => warning,
+ CheckIcon: () => check,
+ CircleXIcon: () => error,
+ AlertTriangleIcon: () => alert
}))
vi.mock('antd', () => ({
diff --git a/src/renderer/src/pages/knowledge/__tests__/GeneralSettingsPanel.test.tsx b/src/renderer/src/pages/knowledge/__tests__/GeneralSettingsPanel.test.tsx
index 64c566ac2..95d1f8e6b 100644
--- a/src/renderer/src/pages/knowledge/__tests__/GeneralSettingsPanel.test.tsx
+++ b/src/renderer/src/pages/knowledge/__tests__/GeneralSettingsPanel.test.tsx
@@ -31,10 +31,10 @@ const mocks = vi.hoisted(() => ({
}))
// Mock InfoTooltip component
-vi.mock('@renderer/components/TooltipIcons', () => ({
+vi.mock('@cherrystudio/ui', () => ({
InfoTooltip: ({ title, placement }: { title: string; placement: string }) => (
-
- ℹ️
+
+ {title}
)
}))
diff --git a/src/renderer/src/pages/knowledge/__tests__/__snapshots__/AdvancedSettingsPanel.test.tsx.snap b/src/renderer/src/pages/knowledge/__tests__/__snapshots__/AdvancedSettingsPanel.test.tsx.snap
index 20daa4a4e..4dca9d125 100644
--- a/src/renderer/src/pages/knowledge/__tests__/__snapshots__/AdvancedSettingsPanel.test.tsx.snap
+++ b/src/renderer/src/pages/knowledge/__tests__/__snapshots__/AdvancedSettingsPanel.test.tsx.snap
@@ -27,9 +27,7 @@ exports[`AdvancedSettingsPanel > basic rendering > should match snapshot 1`] = `
class="settings-label"
>
分块大小
-
- knowledge.chunk_size_tooltip
-
+
basic rendering > should match snapshot 1`] = `
class="settings-label"
>
分块重叠
-
- knowledge.chunk_overlap_tooltip
-
+
basic rendering > should match snapshot 1`] = `
class="settings-label"
>
检索相似度阈值
-
- knowledge.threshold_tooltip
-
+
basic rendering > should match snapshot 1`] = `
- ℹ️
-
+ />