chore(deps): upgrade foxact and Vite+ (#42546)

This commit is contained in:
yyh
2026-09-20 02:52:47 +00:00
committed by GitHub
parent 4da38ea322
commit 61dc68c3a7
6 changed files with 598 additions and 598 deletions
+574 -580
View File
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -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' }))