diff --git a/src/components/filebrowser/FileBrowser.vue b/src/components/filebrowser/FileBrowser.vue index 4fe5071e..70397d84 100644 --- a/src/components/filebrowser/FileBrowser.vue +++ b/src/components/filebrowser/FileBrowser.vue @@ -342,7 +342,6 @@ onUnmounted(cleanupDrag) @pathchanged="pathChanged" @loading="loadingChanged" @refreshed="refreshPending = false" - @filedeleted="refreshPending = true" @renamed="refreshPending = true" @items-updated="fileListUpdated" @switch-tree="switchDirTree" diff --git a/src/components/filebrowser/__tests__/FileBrowser.spec.ts b/src/components/filebrowser/__tests__/FileBrowser.spec.ts index f3843375..03ba8dc8 100644 --- a/src/components/filebrowser/__tests__/FileBrowser.spec.ts +++ b/src/components/filebrowser/__tests__/FileBrowser.spec.ts @@ -72,9 +72,9 @@ const FileNavigatorStub = defineComponent({ const FileListStub = defineComponent({ name: 'FileList', props: ['refreshpending', 'sort', 'showTree'], - emits: ['items-updated', 'loading', 'pathchanged', 'refreshed', 'switch-tree'], + emits: ['items-updated', 'loading', 'pathchanged', 'refreshed', 'switch-tree', 'filedeleted'], template: - '
', + '
', }) function createBrowserProps() { @@ -266,6 +266,15 @@ describe('FileBrowser state and child contracts', () => { expect(wrapper.getComponent(FileListStub).props('refreshpending')).toBe(false) }) + it('does not schedule a second list refresh after the child completes a delete', async () => { + const wrapper = mountBrowser() + + await wrapper.get('.emit-filedeleted').trigger('click') + await nextTick() + + expect(wrapper.getComponent(FileListStub).props('refreshpending')).toBe(false) + }) + it('forwards the latest file list snapshot to the directory navigator', async () => { localStorage.setItem('fileBrowser.showDirTree', 'true') const wrapper = mountBrowser()