X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/5b88c131a4bbff645ab7791ce9d6c2e3dcca49a9..96fdc9e2e344e86378dd156593d8166f309ea1af:/cypress/integration/virtual-machine-admin.spec.js diff --git a/cypress/integration/virtual-machine-admin.spec.js b/cypress/integration/virtual-machine-admin.spec.js index ea39d460..f01a8911 100644 --- a/cypress/integration/virtual-machine-admin.spec.js +++ b/cypress/integration/virtual-machine-admin.spec.js @@ -13,12 +13,12 @@ describe('Virtual machine login manage tests', function() { // aliases are cleaned up after every test. Also it doesn't make sense // to set the same users on beforeEach() over and over again, so we // separate a little from Cypress' 'Best Practices' here. - cy.getUser('admin', 'Admin', 'User', true, true) + cy.getUser('admin', 'VMAdmin', 'User', true, true) .as('adminUser').then(function() { adminUser = this.adminUser; } ); - cy.getUser('user', 'Active', 'User', false, true) + cy.getUser('user', 'VMActive', 'User', false, true) .as('activeUser').then(function() { activeUser = this.activeUser; } @@ -41,29 +41,30 @@ describe('Virtual machine login manage tests', function() { cy.get('button[title="Add Login Permission"]').click(); }); cy.get('[data-cy=form-dialog]') - .should('contain', 'Add login permissions') + .should('contain', 'Add login permission') .within(() => { cy.get('label') - .contains('Search for users') + .contains('Search for user') .parent() .within(() => { - cy.get('input').type('admin'); + cy.get('input').type('VMAdmin'); }) }); cy.get('[role=tooltip]').click(); cy.get('[data-cy=form-dialog]') - .should('contain', 'Add login permissions') + .should('contain', 'Add login permission') .within(() => { cy.get('label') .contains('Add groups') .parent() .within(() => { - cy.get('input').type('sudo{enter}'); + cy.get('input').type('docker sudo{enter}'); }) }); cy.get('[data-cy=form-dialog]').within(() => { cy.get('[data-cy=form-submit-btn]').click(); }); + cy.get('[data-cy=snackbar]').contains('Permission updated'); cy.get('[data-cy=vm-admin-table]') .contains(vmHost) .parents('tr') @@ -79,19 +80,20 @@ describe('Virtual machine login manage tests', function() { cy.get('button[title="Add Login Permission"]').click(); }); cy.get('[data-cy=form-dialog]') - .should('contain', 'Add login permissions') + .should('contain', 'Add login permission') .within(() => { cy.get('label') - .contains('Search for users') + .contains('Search for user') .parent() .within(() => { - cy.get('input').type('active user'); + cy.get('input').type('VMActive user'); }) }); cy.get('[role=tooltip]').click(); cy.get('[data-cy=form-dialog]').within(() => { cy.get('[data-cy=form-submit-btn]').click(); }); + cy.get('[data-cy=snackbar]').contains('Permission updated'); cy.get('[data-cy=vm-admin-table]') .contains(vmHost) .parents('tr') @@ -118,12 +120,110 @@ describe('Virtual machine login manage tests', function() { cy.get('header button[title="Account Management"]').click(); cy.get('#account-menu').contains('Virtual Machines').click(); + cy.get('[data-cy=vm-user-table]') + .contains(vmHost) + .parents('tr') + .within(() => { + cy.get('td').contains('user'); + cy.get('td').should('not.contain', 'docker'); + cy.get('td').should('not.contain', 'sudo'); + cy.get('td').contains('ssh user@' + vmHost); + }); + + // Edit login permissions + cy.loginAs(adminUser); + cy.get('header button[title="Admin Panel"]').click(); + cy.get('#admin-menu').contains('Virtual Machines').click(); + + cy.get('[data-cy=vm-admin-table]') + .contains('admin'); // Wait for page to finish + + cy.get('[data-cy=vm-admin-table]') + .contains(vmHost) + .parents('tr') + .contains('admin') + .click(); + + cy.get('[data-cy=form-dialog]') + .should('contain', 'Update login permission') + .within(() => { + cy.get('label') + .contains('Add groups') + .parent() + .as('groupInput'); + }); + + cy.get('@groupInput').within(() => { + cy.get('div[role=button]').contains('sudo').parent().find('svg').click(); + cy.get('div[role=button]').contains('docker').parent().find('svg').click(); + }); + + cy.get('[data-cy=form-dialog]').within(() => { + cy.get('[data-cy=form-submit-btn]').click(); + }); + + // Wait for page to finish loading + cy.get('[data-cy=snackbar]').contains('Permission updated'); + cy.get('[data-cy=vm-admin-table]') + .contains(vmHost) + .parents('tr') + .within(() => { + cy.get('div[role=button]') + .parent() + .first() + .contains('admin') + }); + + cy.get('[data-cy=vm-admin-table]') + .contains(vmHost) + .parents('tr') + .contains('user') + .click(); + + cy.get('[data-cy=form-dialog]') + .should('contain', 'Update login permission') + .within(() => { + cy.get('label') + .contains('Add groups') + .parent() + .within(() => { + cy.get('input').type('docker{enter}'); + }) + }); + + cy.get('[data-cy=form-dialog]').within(() => { + cy.get('[data-cy=form-submit-btn]').click(); + }); + cy.get('[data-cy=snackbar]').contains('Permission updated'); + + // Verify new login permissions + // Check admin's vm page for login + cy.get('header button[title="Account Management"]').click(); + cy.get('#account-menu').contains('Virtual Machines').click(); + + cy.get('[data-cy=vm-user-table]') + .contains(vmHost) + .parents('tr') + .within(() => { + cy.get('td').contains('admin'); + cy.get('td').should('not.contain', 'docker'); + cy.get('td').should('not.contain', 'sudo'); + cy.get('td').contains('ssh admin@' + vmHost); + }); + + // Verify new login permissions + // Check activeUser's vm page for login + cy.loginAs(activeUser); + cy.get('header button[title="Account Management"]').click(); + cy.get('#account-menu').contains('Virtual Machines').click(); + cy.get('[data-cy=vm-user-table]') .contains(vmHost) .parents('tr') .within(() => { cy.get('td').contains('user'); cy.get('td').contains('docker'); + cy.get('td').should('not.contain', 'sudo'); cy.get('td').contains('ssh user@' + vmHost); }); @@ -152,7 +252,7 @@ describe('Virtual machine login manage tests', function() { cy.get('div[role=button]').should('have.length', 1) }); - cy.get('@vmRow') + cy.get('@vmRow') .find('div[role=button]') .contains('admin') .parents('[role=button]')