mirror of
https://github.com/langgenius/dify.git
synced 2026-08-30 17:11:50 +08:00
fix: fix skill display name rename conflict (#41229)
This commit is contained in:
@@ -807,7 +807,6 @@ describe('SkillDetailPage', () => {
|
||||
latest_published_at: version.created_at,
|
||||
latest_published_version_id: version.id,
|
||||
latest_published_version_number: version.version_number,
|
||||
updated_at: version.created_at,
|
||||
}
|
||||
: mocks.skillDetail
|
||||
return version
|
||||
@@ -2147,6 +2146,71 @@ describe('SkillDetailPage', () => {
|
||||
expect(document.body).toHaveTextContent('skill.skillManagement.detail.unpublishedChanges')
|
||||
})
|
||||
|
||||
it('keeps the skill timestamp for metadata updates after publishing', async () => {
|
||||
const user = userEvent.setup()
|
||||
const skillUpdatedAt = 1784638490
|
||||
const versionCreatedAt = 1784638491
|
||||
mocks.skillDetail = createSkillDetail({ updated_at: skillUpdatedAt })
|
||||
mocks.publishSkillMutationFn.mockImplementationOnce(async () => {
|
||||
const version = {
|
||||
id: 'version-2',
|
||||
version_number: 2,
|
||||
version_name: '',
|
||||
publish_note: '',
|
||||
hash_code: 'hash-code',
|
||||
archive_size: 180,
|
||||
published_by: 'user-1',
|
||||
published_by_name: 'Fate',
|
||||
created_at: versionCreatedAt,
|
||||
is_latest: true,
|
||||
}
|
||||
mocks.skillDetail = mocks.skillDetail
|
||||
? {
|
||||
...mocks.skillDetail,
|
||||
latest_published_at: version.created_at,
|
||||
latest_published_version_id: version.id,
|
||||
latest_published_version_number: version.version_number,
|
||||
}
|
||||
: mocks.skillDetail
|
||||
return version
|
||||
})
|
||||
renderSkillDetailPage()
|
||||
|
||||
await user.click(
|
||||
await screen.findByRole('button', {
|
||||
name: 'skill.skillManagement.detail.publishUpdate',
|
||||
}),
|
||||
)
|
||||
await waitFor(() => {
|
||||
expect(mocks.publishSkillMutationFn).toHaveBeenCalled()
|
||||
})
|
||||
|
||||
await user.click(screen.getByRole('button', { name: 'common.operation.rename' }))
|
||||
const renameInput = screen.getByRole('textbox', { name: 'common.operation.rename' })
|
||||
await user.clear(renameInput)
|
||||
await user.type(renameInput, 'Renamed after publish{Enter}')
|
||||
|
||||
await waitFor(() => {
|
||||
expect(mocks.skillMetadataMutationFn).toHaveBeenCalledWith(
|
||||
expect.objectContaining({
|
||||
body: expect.objectContaining({
|
||||
display_name: 'Renamed after publish',
|
||||
expected_updated_at: skillUpdatedAt,
|
||||
}),
|
||||
}),
|
||||
expect.anything(),
|
||||
)
|
||||
})
|
||||
expect(mocks.skillMetadataMutationFn).not.toHaveBeenCalledWith(
|
||||
expect.objectContaining({
|
||||
body: expect.objectContaining({
|
||||
expected_updated_at: versionCreatedAt,
|
||||
}),
|
||||
}),
|
||||
expect.anything(),
|
||||
)
|
||||
})
|
||||
|
||||
it('adds custom metadata from the value field Enter key and saves it on publish', async () => {
|
||||
const user = userEvent.setup()
|
||||
renderSkillDetailPage()
|
||||
|
||||
@@ -127,10 +127,6 @@ export function SkillDetailPage({ skillId }: { skillId: string }) {
|
||||
latest_published_at: publishedOverride.publishedAt,
|
||||
latest_published_version_id: publishedOverride.id,
|
||||
latest_published_version_number: publishedOverride.versionNumber,
|
||||
updated_at:
|
||||
baseDetail.latest_published_version_id === publishedOverride.id
|
||||
? baseDetail.updated_at
|
||||
: Math.max(baseDetail.updated_at, publishedOverride.publishedAt),
|
||||
}
|
||||
}, [baseDetail, publishedOverride])
|
||||
if (
|
||||
@@ -253,7 +249,6 @@ export function SkillDetailPage({ skillId }: { skillId: string }) {
|
||||
latest_published_at: version.created_at,
|
||||
latest_published_version_id: version.id,
|
||||
latest_published_version_number: version.version_number,
|
||||
updated_at: Math.max(detail.updated_at, version.created_at),
|
||||
})
|
||||
}
|
||||
await queryClient.invalidateQueries({ queryKey: detailQueryKey })
|
||||
|
||||
Reference in New Issue
Block a user