mirror of
https://github.com/langgenius/dify.git
synced 2026-10-16 15:35:32 +08:00
chore(deps): upgrade foxact and Vite+ (#42546)
This commit is contained in:
Generated
+574
-580
File diff suppressed because it is too large
Load Diff
+3
-3
@@ -183,7 +183,7 @@ catalog:
|
||||
eslint-plugin-yml: 3.8.1
|
||||
eventsource-parser: 4.1.1
|
||||
fast-deep-equal: 3.1.3
|
||||
foxact: 0.3.11
|
||||
foxact: 0.3.12
|
||||
frimousse: 0.3.0
|
||||
fuse.js: 7.5.0
|
||||
happy-dom: 20.14.5
|
||||
@@ -255,9 +255,9 @@ catalog:
|
||||
use-context-selector: 2.0.0
|
||||
uuid: 14.0.2
|
||||
vinext: 1.0.0-beta.10
|
||||
vite: npm:@voidzero-dev/vite-plus-core@0.3.2
|
||||
vite: npm:@voidzero-dev/vite-plus-core@0.3.3
|
||||
vite-plugin-inspect: 12.0.2
|
||||
vite-plus: 0.3.2
|
||||
vite-plus: 0.3.3
|
||||
vitest: 4.1.11
|
||||
vitest-browser-react: 2.3.0
|
||||
vitest-canvas-mock: 1.2.0
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { act, fireEvent, render, screen, waitFor } from '@testing-library/react'
|
||||
import userEvent from '@testing-library/user-event'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { describe, expect, it, vi } from 'vite-plus/test'
|
||||
import MarketplaceDetailDialogFrame from '../frame'
|
||||
|
||||
const title = 'Plugin details'
|
||||
|
||||
@@ -31,22 +31,28 @@ it('copies through the keyboard action and retains focus after feedback', async
|
||||
}
|
||||
})
|
||||
|
||||
it('retains action focus when clipboard copying falls back to execCommand', async () => {
|
||||
it('preserves whitespace and action focus when clipboard copying falls back to execCommand', async () => {
|
||||
const description = 'First line\n indented text\n\ttabbed text'
|
||||
let selectedText = ''
|
||||
const writeText = vi
|
||||
.spyOn(navigator.clipboard, 'writeText')
|
||||
.mockRejectedValue(new Error('Denied'))
|
||||
const execCommand = vi.spyOn(document, 'execCommand').mockReturnValue(true)
|
||||
const execCommand = vi.spyOn(document, 'execCommand').mockImplementation(() => {
|
||||
selectedText = document.getSelection()?.toString() ?? ''
|
||||
return true
|
||||
})
|
||||
const manager = createToastManager()
|
||||
const toast = createToast(manager)
|
||||
try {
|
||||
const screen = await render(<AppToastHost manager={manager} timeout={0} />)
|
||||
toast.error('Connection failed')
|
||||
toast.error('Connection failed', { description })
|
||||
await expect.element(screen.getByText('Connection failed')).toBeInTheDocument()
|
||||
await userEvent.keyboard('{F6}{Tab}{Tab}{Enter}')
|
||||
await expect
|
||||
.element(screen.getByRole('button', { name: 'common.operation.copied' }))
|
||||
.toHaveFocus()
|
||||
expect(execCommand).toHaveBeenCalledExactlyOnceWith('copy')
|
||||
expect(selectedText).toBe(`Connection failed\n${description}`)
|
||||
} finally {
|
||||
toast.dismiss()
|
||||
writeText.mockRestore()
|
||||
|
||||
@@ -471,16 +471,15 @@ export function AgentRosterList({ label, state }: AgentRosterListProps) {
|
||||
}
|
||||
/>
|
||||
)}
|
||||
{state.status === 'ready' &&
|
||||
state.agents.length > 0 && (
|
||||
// Safari list semantics: https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/list-style#accessibility
|
||||
// oxlint-disable-next-line jsx-a11y/no-redundant-roles -- Dify's preflight removes list markers.
|
||||
<ul role="list" className={AGENT_ROSTER_GRID_CLASS_NAME}>
|
||||
{state.agents.map((agent) => (
|
||||
<AgentRosterItem key={agent.id} agent={agent} />
|
||||
))}
|
||||
</ul>
|
||||
)}
|
||||
{state.status === 'ready' && state.agents.length > 0 && (
|
||||
// Safari list semantics: https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/list-style#accessibility
|
||||
// oxlint-disable-next-line jsx-a11y/no-redundant-roles -- Dify's preflight removes list markers.
|
||||
<ul role="list" className={AGENT_ROSTER_GRID_CLASS_NAME}>
|
||||
{state.agents.map((agent) => (
|
||||
<AgentRosterItem key={agent.id} agent={agent} />
|
||||
))}
|
||||
</ul>
|
||||
)}
|
||||
{state.status === 'ready' && state.footer.status === 'error' && (
|
||||
<div
|
||||
className="flex items-center justify-center gap-3 pt-1 system-xs-regular text-text-destructive"
|
||||
|
||||
@@ -101,6 +101,7 @@ describe('i18n build check', () => {
|
||||
await expect(buildFixture()).resolves.toBeDefined()
|
||||
})
|
||||
|
||||
// Two rounds of three real builds need headroom under CI coverage and parallel load.
|
||||
it('checks the union of client, SSR and RSC graphs only after every environment builds', async () => {
|
||||
writeFileSync(localeFile, JSON.stringify({ client: 'Client', ssr: 'SSR', rsc: 'RSC' }))
|
||||
for (const name of ['client', 'ssr', 'rsc']) {
|
||||
@@ -144,7 +145,7 @@ describe('i18n build check', () => {
|
||||
// A second build must not inherit the first build's server usage.
|
||||
writeFileSync(path.join(root, 'ssr.ts'), 'export const value = 1')
|
||||
await expect(builder.buildApp()).rejects.toThrow('app:ssr')
|
||||
})
|
||||
}, 15_000)
|
||||
|
||||
it('retains usages from environment-specific versions of the same module', async () => {
|
||||
writeFileSync(localeFile, JSON.stringify({ client: 'Client', ssr: 'SSR' }))
|
||||
|
||||
Reference in New Issue
Block a user