|
|
|
@ -67,4 +67,49 @@ describe('files: Rename nodes', { testIsolation: true }, () => { |
|
|
|
// See validity
|
|
|
|
.should(haveValidity(/reserved name/i)) |
|
|
|
}) |
|
|
|
|
|
|
|
it('shows accessible loading information', () => { |
|
|
|
const { resolve, promise } = Promise.withResolvers() |
|
|
|
|
|
|
|
getRowForFile('file.txt').should('be.visible') |
|
|
|
|
|
|
|
// intercept the rename (MOVE)
|
|
|
|
// the callback will wait until the promise resolve (so we have time to check the loading state)
|
|
|
|
cy.intercept( |
|
|
|
'MOVE', |
|
|
|
/\/remote.php\/dav\/files\//, |
|
|
|
async () => { await promise }, |
|
|
|
).as('moveFile') |
|
|
|
|
|
|
|
// Start the renaming
|
|
|
|
triggerActionForFile('file.txt', 'rename') |
|
|
|
getRowForFile('file.txt') |
|
|
|
.findByRole('textbox', { name: 'Filename' }) |
|
|
|
.should('be.visible') |
|
|
|
.type('{selectAll}new-name.txt{enter}') |
|
|
|
|
|
|
|
// Loading state is visible
|
|
|
|
getRowForFile('new-name.txt') |
|
|
|
.findByRole('img', { name: 'File is loading' }) |
|
|
|
.should('be.visible') |
|
|
|
// checkbox is not visible
|
|
|
|
getRowForFile('new-name.txt') |
|
|
|
.findByRole('checkbox', { name: /^Toggle selection/ }) |
|
|
|
.should('not.exist') |
|
|
|
|
|
|
|
cy.log('Resolve promise to preoceed with MOVE request') |
|
|
|
.then(() => resolve(null)) |
|
|
|
|
|
|
|
// Ensure the request is done (file renamed)
|
|
|
|
cy.wait('@moveFile') |
|
|
|
|
|
|
|
// checkbox visible again
|
|
|
|
getRowForFile('new-name.txt') |
|
|
|
.findByRole('checkbox', { name: /^Toggle selection/ }) |
|
|
|
.should('exist') |
|
|
|
// see the loading state is gone
|
|
|
|
getRowForFile('new-name.txt') |
|
|
|
.findByRole('img', { name: 'File is loading' }) |
|
|
|
.should('not.exist') |
|
|
|
}) |
|
|
|
}) |