- cy.getAll('@testCollection', '@testProject')
- .then(function ([testCollection, testProject]) {
- cy.loginAs(activeUser);
- cy.goToPath(`/collections/${testCollection.uuid}`);
- cy.get('[data-cy=collection-files-panel]').should('contain', fileName);
- cy.get('[data-cy=collection-info-panel]')
- .should('not.contain', projName)
- .and('not.contain', testProject.uuid);
- cy.get('[data-cy=collection-panel-options-btn]').click();
- cy.get('[data-cy=context-menu]').contains('Move to').click();
- cy.get('[data-cy=form-dialog]')
- .should('contain', 'Move to')
- .within(() => {
- cy.get('[data-cy=projects-tree-home-tree-picker]')
- .find('i')
- .click();
- cy.get('[data-cy=projects-tree-home-tree-picker]')
- .contains(projName)
- .click();
- });
- cy.get('[data-cy=form-submit-btn]').click();
- cy.get('[data-cy=snackbar]')
- .contains('Collection has been moved')
- cy.get('[data-cy=collection-info-panel]')
- .contains(projName).and('contain', testProject.uuid);
- // Double check that the collection is in the project
- cy.goToPath(`/projects/${testProject.uuid}`);
- cy.get('[data-cy=project-panel]').should('contain', collName);
+ cy.getAll("@testCollection", "@testProject").then(function ([testCollection, testProject]) {
+ cy.loginAs(activeUser);
+ cy.goToPath(`/collections/${testCollection.uuid}`);
+ cy.get("[data-cy=collection-files-panel]").should("contain", fileName);
+ cy.get("[data-cy=collection-info-panel]").should("not.contain", projName).and("not.contain", testProject.uuid);
+ cy.get("[data-cy=collection-panel-options-btn]").click();
+ cy.get("[data-cy=context-menu]").contains("Move to").click();
+ cy.get("[data-cy=form-dialog]")
+ .should("contain", "Move to")
+ .within(() => {
+ // must use .then to avoid selecting instead of expanding https://github.com/cypress-io/cypress/issues/5529
+ cy.get("[data-cy=projects-tree-home-tree-picker]")
+ .find("i")
+ .then(el => el.click());
+ cy.get("[data-cy=projects-tree-home-tree-picker]").contains(projName).click();
+ });
+ cy.get("[data-cy=form-submit-btn]").click();
+ cy.get("[data-cy=snackbar]").contains("Collection has been moved");
+ cy.get("[data-cy=collection-info-panel]").contains(projName).and("contain", testProject.uuid);
+ // Double check that the collection is in the project
+ cy.goToPath(`/projects/${testProject.uuid}`);
+ cy.waitForDom().get("[data-cy=project-panel]").should("contain", collName);
+ });
+ });
+
+ it("automatically updates the collection UI contents without using the Refresh button", function () {
+ const collName = `Test Collection ${Math.floor(Math.random() * 999999)}`;
+
+ cy.createCollection(adminUser.token, {
+ name: collName,
+ owner_uuid: activeUser.user.uuid,
+ }).as("testCollection");
+
+ cy.getAll("@testCollection").then(function ([testCollection]) {
+ cy.loginAs(activeUser);
+
+ const files = ["foobar", "anotherFile", "", "finalName"];
+
+ cy.goToPath(`/collections/${testCollection.uuid}`);
+ cy.get("[data-cy=collection-files-panel]").should("contain", "This collection is empty");
+ cy.get("[data-cy=collection-files-panel]").should("not.contain", files[0]);
+ cy.get("[data-cy=collection-info-panel]").should("contain", collName);
+
+ files.map((fileName, i, files) => {
+ cy.updateCollection(adminUser.token, testCollection.uuid, {
+ name: `${collName + " updated"}`,
+ manifest_text: fileName ? `. 37b51d194a7513e45b56f6524f2d51f2+3 0:3:${fileName}\n` : "",
+ }).as("updatedCollection");
+ cy.getAll("@updatedCollection").then(function ([updatedCollection]) {
+ expect(updatedCollection.name).to.equal(`${collName + " updated"}`);
+ cy.get("[data-cy=collection-info-panel]").should("contain", updatedCollection.name);
+ fileName
+ ? cy.get("[data-cy=collection-files-panel]").should("contain", fileName)
+ : cy.get("[data-cy=collection-files-panel]").should("not.contain", files[i - 1]);
+ });