- it("renames a file to a different directory", function () {
- // Creates the collection using the admin token so we can set up
- // a bogus manifest text without block signatures.
- cy.createCollection(adminUser.token, {
- name: `Test collection ${Math.floor(Math.random() * 999999)}`,
- owner_uuid: activeUser.user.uuid,
- manifest_text: ". 37b51d194a7513e45b56f6524f2d51f2+3 0:3:bar\n",
- })
- .as("testCollection")
- .then(function () {
- cy.loginAs(activeUser);
- cy.goToPath(`/collections/${this.testCollection.uuid}`);
-
- ["subdir", "G%C3%BCnter's%20file", "table%&?*2"].forEach(subdir => {
- cy.waitForDom().get("[data-cy=collection-files-panel]").contains("bar").rightclick();
- cy.get("[data-cy=context-menu]").contains("Rename").click();
- cy.get("[data-cy=form-dialog]")
- .should("contain", "Rename")
- .within(() => {
- cy.get("input").type(`{selectall}{backspace}${subdir}/foo`);
- });
- cy.get("[data-cy=form-submit-btn]").click();
- cy.get("[data-cy=collection-files-panel]").should("not.contain", "bar").and("contain", subdir);
- cy.get("[data-cy=collection-files-panel]").contains(subdir).click();
-
- // Rename 'subdir/foo' to 'bar'
- cy.wait(1000);
- cy.get("[data-cy=collection-files-panel]").contains("foo").rightclick();
- cy.get("[data-cy=context-menu]").contains("Rename").click();
- cy.get("[data-cy=form-dialog]")
- .should("contain", "Rename")
- .within(() => {
- cy.get("input").should("have.value", `${subdir}/foo`).type(`{selectall}{backspace}bar`);
- });
- cy.get("[data-cy=form-submit-btn]").click();
-
- // need to wait for dialog to dismiss
- cy.get("[data-cy=form-dialog]").should("not.exist");
-
- cy.waitForDom().get("[data-cy=collection-files-panel]").contains("Home").click();
-
- cy.wait(2000);
- cy.get("[data-cy=collection-files-panel]")
- .should("contain", subdir) // empty dir kept
- .and("contain", "bar");
-
- cy.get("[data-cy=collection-files-panel]").contains(subdir).rightclick();
- cy.get("[data-cy=context-menu]").contains("Remove").click();
- cy.get("[data-cy=confirmation-dialog-ok-btn]").click();
- cy.get("[data-cy=form-dialog]").should("not.exist");
- });
- });
- });
-