19305: Add cypress tests for edit project via breadcrumbs 19305-project-update-dialog-properties
authorStephen Smith <stephen@curii.com>
Tue, 2 Aug 2022 14:38:14 +0000 (10:38 -0400)
committerStephen Smith <stephen@curii.com>
Tue, 2 Aug 2022 14:38:14 +0000 (10:38 -0400)
Arvados-DCO-1.1-Signed-off-by: Stephen Smith <stephen@curii.com>

cypress/integration/project.spec.js
src/views-components/resource-properties/resource-properties-list.tsx

index c4983e3e16bc5f135a0b6e4a29f24c3dad79bf58..b2f6f33df33fc0772f0a6eedbf2973aff9a87d7e 100644 (file)
@@ -85,6 +85,39 @@ describe('Project tests', function() {
                 // Pink is not in the test vocab
                 {IDTAGCOLORS: ['IDVALCOLORS3', 'Pink', 'IDVALCOLORS1']});
         });
+
+        // Open project edit via breadcrumbs
+        cy.get('[data-cy=breadcrumbs]').contains(projName).rightclick();
+        cy.get('[data-cy=context-menu]').contains('Edit').click();
+        cy.get('[data-cy=form-dialog]').within(() => {
+            cy.get('[data-cy=resource-properties-list]').within(() => {
+                cy.get('div[role=button]').contains('Color: Magenta');
+                cy.get('div[role=button]').contains('Color: Pink');
+                cy.get('div[role=button]').contains('Color: Yellow');
+            });
+        });
+        // Add another property
+        cy.get('[data-cy=resource-properties-form]').within(() => {
+            cy.get('[data-cy=property-field-key]').within(() => {
+                cy.get('input').type('Animal');
+            });
+            cy.get('[data-cy=property-field-value]').within(() => {
+                cy.get('input').type('Dog');
+            });
+            cy.root().submit();
+        });
+        cy.get('[data-cy=form-submit-btn]').click();
+        // Reopen edit via breadcrumbs and verify properties
+        cy.get('[data-cy=breadcrumbs]').contains(projName).rightclick();
+        cy.get('[data-cy=context-menu]').contains('Edit').click();
+        cy.get('[data-cy=form-dialog]').within(() => {
+            cy.get('[data-cy=resource-properties-list]').within(() => {
+                cy.get('div[role=button]').contains('Color: Magenta');
+                cy.get('div[role=button]').contains('Color: Pink');
+                cy.get('div[role=button]').contains('Color: Yellow');
+                cy.get('div[role=button]').contains('Animal: Dog');
+            });
+        });
     });
 
     it('creates new project on home project and then a subproject inside it', function() {
index a7b5825244abc7c2e859e676db49a32321fa2b67..47d7729b4dc1a0d16e935968f47aa22685d0fdc4 100644 (file)
@@ -38,7 +38,7 @@ ResourcePropertiesListActionProps & WithStyles<CssRules>;
 
 const List = withStyles(styles)(
     ({ classes, handleDelete, properties }: ResourcePropertiesListProps) =>
-        <div>
+        <div data-cy="resource-properties-list">
             {properties &&
                 Object.keys(properties).map(k =>
                     Array.isArray(properties[k])
@@ -63,4 +63,4 @@ export const resourcePropertiesList = (formName: string) =>
         (dispatch: Dispatch): ResourcePropertiesListActionProps => ({
                 handleDelete: (key: string, value: string) => dispatch<any>(removePropertyFromResourceForm(key, value, formName))
         })
-    )(List);
\ No newline at end of file
+    )(List);