-
Notifications
You must be signed in to change notification settings - Fork 113
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* feat: introduces read-only tenant mode tests Signed-off-by: Kajetan Nobel <[email protected]> * feat: move loadSampleData to before Signed-off-by: Kajetan Nobel <[email protected]> * fix: add data to correct tenant, fix for version 2.9.0 Signed-off-by: Kajetan Nobel <[email protected]> * feat: retest and improve switching tenant Signed-off-by: Kajetan Nobel <[email protected]> --------- Signed-off-by: Kajetan Nobel <[email protected]> Signed-off-by: Kajetan Nobel <[email protected]>
- Loading branch information
1 parent
652537e
commit 941f2de
Showing
3 changed files
with
122 additions
and
5 deletions.
There are no files selected for viewing
95 changes: 95 additions & 0 deletions
95
cypress/integration/plugins/security-dashboards-plugin/readonly.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
/* | ||
* Copyright OpenSearch Contributors | ||
* SPDX-License-Identifier: Apache-2.0 | ||
*/ | ||
|
||
import roleWithoutTestJson from '../../../fixtures/plugins/security-dashboards-plugin/roles/roleWithoutTest'; | ||
import { BASE_PATH } from '../../../utils/base_constants'; | ||
import { ADMIN_AUTH, CURRENT_TENANT } from '../../../utils/commands'; | ||
import { switchTenantTo } from './switch_tenant'; | ||
|
||
const TEST_CONFIG = { | ||
role: { | ||
name: 'test_readonly_role', | ||
json: Object.assign({}, roleWithoutTestJson, { | ||
tenant_permissions: [ | ||
{ | ||
tenant_patterns: ['test_readonly_tenant'], | ||
allowed_actions: ['kibana_all_read'], | ||
}, | ||
], | ||
}), | ||
}, | ||
tenant: { | ||
name: 'test_readonly_tenant', | ||
description: 'Testing read-only tenant mode', | ||
}, | ||
user: { | ||
username: 'test_readonly_user', | ||
password: 'testUserPassword123', | ||
}, | ||
}; | ||
|
||
if (Cypress.env('SECURITY_ENABLED')) { | ||
describe('Read Only mode', () => { | ||
before(() => { | ||
cy.server(); | ||
|
||
cy.createTenant(TEST_CONFIG.tenant.name, { | ||
description: TEST_CONFIG.tenant.description, | ||
}); | ||
|
||
cy.createInternalUser(TEST_CONFIG.user.username, { | ||
password: TEST_CONFIG.user.password, | ||
}); | ||
|
||
cy.createRole(TEST_CONFIG.role.name, TEST_CONFIG.role.json); | ||
|
||
cy.createRoleMapping(TEST_CONFIG.role.name, { | ||
users: [ADMIN_AUTH.username, TEST_CONFIG.user.username], | ||
}); | ||
|
||
/* Add sample data to testing tenant */ | ||
CURRENT_TENANT.newTenant = TEST_CONFIG.tenant.name; | ||
cy.visit(BASE_PATH, { | ||
onBeforeLoad(window) { | ||
window.sessionStorage.setItem( | ||
'opendistro::security::tenant::show_popup', | ||
false | ||
); | ||
window.localStorage.setItem( | ||
'opendistro::security::tenant::saved', | ||
`"${TEST_CONFIG.tenant.name}"` | ||
); | ||
window.localStorage.setItem('home:newThemeModal:show', false); | ||
}, | ||
}); | ||
cy.waitForLoader(); | ||
switchTenantTo(TEST_CONFIG.tenant.name); | ||
cy.loadSampleData('logs'); | ||
}); | ||
|
||
it('should be able to modify the dashboard as admin', () => { | ||
cy.visit(BASE_PATH); | ||
cy.waitForLoader(); | ||
|
||
cy.visitDashboard('[Logs] Web Traffic'); | ||
|
||
cy.getElementByTestId('dashboardClone').should('exist'); | ||
cy.getElementByTestId('dashboardEditMode').should('exist'); | ||
}); | ||
|
||
it('should not be able to modify the dashboard when is performing as a custom readonly tenant', () => { | ||
ADMIN_AUTH.newUser = TEST_CONFIG.user.username; | ||
ADMIN_AUTH.newPassword = TEST_CONFIG.user.password; | ||
|
||
cy.visit(BASE_PATH); | ||
cy.waitForLoader(); | ||
|
||
cy.visitDashboard('[Logs] Web Traffic'); | ||
|
||
cy.getElementByTestId('dashboardClone').should('not.exist'); | ||
cy.getElementByTestId('dashboardEditMode').should('not.exist'); | ||
}); | ||
}); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters