|
|
@@ -115,6 +115,61 @@ describe('FileTree Delete Entity Flow', function() {
|
|
|
})
|
|
|
})
|
|
|
|
|
|
+ describe('folders', function() {
|
|
|
+ beforeEach(function() {
|
|
|
+ const rootFolder = [
|
|
|
+ {
|
|
|
+ docs: [{ _id: '456def', name: 'main.tex' }],
|
|
|
+ folders: [
|
|
|
+ {
|
|
|
+ _id: '123abc',
|
|
|
+ name: 'folder',
|
|
|
+ docs: [],
|
|
|
+ folders: [],
|
|
|
+ fileRefs: [{ _id: '789ghi', name: 'my.bib' }]
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ fileRefs: []
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ render(
|
|
|
+ <FileTreeRoot
|
|
|
+ rootFolder={rootFolder}
|
|
|
+ projectId="123abc"
|
|
|
+ hasWritePermissions
|
|
|
+ onSelect={onSelect}
|
|
|
+ onInit={onInit}
|
|
|
+ />
|
|
|
+ )
|
|
|
+
|
|
|
+ const expandButton = screen.queryByRole('button', { name: 'Expand' })
|
|
|
+ if (expandButton) fireEvent.click(expandButton)
|
|
|
+ const treeitemDoc = screen.getByRole('treeitem', { name: 'main.tex' })
|
|
|
+ fireEvent.click(treeitemDoc)
|
|
|
+ const treeitemFile = screen.getByRole('treeitem', { name: 'my.bib' })
|
|
|
+ fireEvent.click(treeitemFile, { ctrlKey: true })
|
|
|
+
|
|
|
+ window._ide.socket.socketClient.emit('removeEntity', '123abc')
|
|
|
+ })
|
|
|
+
|
|
|
+ it('removes the folder', function() {
|
|
|
+ expect(screen.queryByRole('treeitem', { name: 'folder' })).to.not.exist
|
|
|
+ })
|
|
|
+
|
|
|
+ it('leaves the main file selected', function() {
|
|
|
+ screen.getByRole('treeitem', { name: 'main.tex', selected: true })
|
|
|
+ })
|
|
|
+
|
|
|
+ it('unselect the child entity', async function() {
|
|
|
+ // as a proxy to check that the child entity has been unselect we start
|
|
|
+ // a delete and ensure the modal is displayed (the cancel button can be
|
|
|
+ // selected) This is needed to make sure the test fail.
|
|
|
+ const deleteButton = screen.getByRole('menuitem', { name: 'Delete' })
|
|
|
+ fireEvent.click(deleteButton)
|
|
|
+ await waitFor(() => screen.getByRole('button', { name: 'Cancel' }))
|
|
|
+ })
|
|
|
+ })
|
|
|
+
|
|
|
describe('multiple entities', function() {
|
|
|
beforeEach(function() {
|
|
|
const rootFolder = [
|