fix(editor): Hard load after logout to reset stores (no-changelog) (#9500)

This commit is contained in:
Csaba Tuncsik 2024-05-23 17:07:40 +02:00 committed by GitHub
parent f8683c31e0
commit 93679076b4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 35 additions and 4 deletions

View file

@ -34,6 +34,27 @@ describe('User Management', { disableAutoLogin: true }, () => {
cy.enableFeature('sharing');
});
it.only('should login and logout', () => {
cy.visit('/');
cy.get('input[name="email"]').type(INSTANCE_OWNER.email);
cy.get('input[name="password"]').type(INSTANCE_OWNER.password);
cy.getByTestId('form-submit-button').click();
mainSidebar.getters.logo().should('be.visible');
mainSidebar.actions.goToSettings();
settingsSidebar.getters.users().should('be.visible');
mainSidebar.actions.closeSettings();
mainSidebar.actions.openUserMenu();
cy.getByTestId('user-menu-item-logout').click();
cy.get('input[name="email"]').type(INSTANCE_MEMBERS[0].email);
cy.get('input[name="password"]').type(INSTANCE_MEMBERS[0].password);
cy.getByTestId('form-submit-button').click();
mainSidebar.getters.logo().should('be.visible');
mainSidebar.actions.goToSettings();
cy.getByTestId('menu-item').filter('#settings-users').should('not.exist');
});
it('should prevent non-owners to access UM settings', () => {
usersSettingsPage.actions.loginAndVisit(
INSTANCE_MEMBERS[0].email,

View file

@ -15,7 +15,7 @@ const credentialsModal = new CredentialsModal();
const executionsTab = new WorkflowExecutionsTab();
describe('Projects', () => {
beforeEach(() => {
before(() => {
cy.resetDatabase();
cy.enableFeature('sharing');
cy.enableFeature('advancedPermissions');
@ -219,4 +219,13 @@ describe('Projects', () => {
menuItems.filter('[class*=active_]').should('have.length', 1);
menuItems.filter(':contains("Development")[class*=active_]').should('exist');
});
it('should not show project add button and projects to a member if not invited to any project', () => {
cy.signout();
cy.signin(INSTANCE_MEMBERS[1]);
cy.visit(workflowsPage.url);
projects.getAddProjectButton().should('not.exist');
projects.getMenuItems().should('not.exist');
});
});

View file

@ -7,6 +7,7 @@ export class MainSidebar extends BasePage {
getters = {
menuItem: (id: string) => cy.getByTestId('menu-item').get('#' + id),
settings: () => this.getters.menuItem('settings'),
settingsBack: () => cy.getByTestId('settings-back'),
templates: () => this.getters.menuItem('templates'),
workflows: () => this.getters.menuItem('workflows'),
credentials: () => this.getters.menuItem('credentials'),
@ -30,8 +31,8 @@ export class MainSidebar extends BasePage {
openUserMenu: () => {
this.getters.userMenu().click();
},
openUserMenu: () => {
this.getters.userMenu().click();
closeSettings: () => {
this.getters.settingsBack().click();
},
signout: () => {
const workflowsPage = new WorkflowsPage();

View file

@ -22,7 +22,7 @@ export default defineComponent({
async logout() {
try {
await this.usersStore.logout();
void this.$router.replace({ name: VIEWS.SIGNIN });
window.location.href = this.$router.resolve({ name: VIEWS.SIGNIN }).href;
} catch (e) {
this.showError(e, this.$locale.baseText('auth.signout.error'));
}