OAuth test

This commit is contained in:
SPRINX0\prochazka
2025-02-05 10:28:11 +01:00
parent 07a803a687
commit 920788febb
4 changed files with 41 additions and 14 deletions

View File

@@ -17,6 +17,11 @@ staticClients:
enablePasswordDB: true enablePasswordDB: true
staticPasswords: staticPasswords:
- email: "test@example.com" - email: "test@example.com"
emailVerified: true
hash: "$2y$10$JcmlXnV1y7.egUdKwYNbseOnqYVIGc323gtvvHh4ZuSPZB30veYZy" hash: "$2y$10$JcmlXnV1y7.egUdKwYNbseOnqYVIGc323gtvvHh4ZuSPZB30veYZy"
username: "test" username: "test"
userID: "1234" userID: "1234"
allowedScopes:
- openid
- email
- profile

View File

@@ -28,33 +28,55 @@ describe('Team edition tests', () => {
cy.themeshot('authadmin'); cy.themeshot('authadmin');
}); });
it.only('OAuth authentication', () => { it('OAuth authentication', () => {
cy.testid('LoginPage_linkAdmin').click(); cy.testid('LoginPage_linkAdmin').click();
cy.testid('LoginPage_password').type('adminpwd'); cy.testid('LoginPage_password').type('adminpwd');
cy.testid('LoginPage_submitLogin').click(); cy.testid('LoginPage_submitLogin').click();
cy.testid('AdminMenuWidget_itemAuthentication').click(); cy.testid('AdminMenuWidget_itemAuthentication').click();
// cy.testid('AdminAuthForm_disableButton_local').click(); // cy.testid('AdminAuthForm_disableButton_local').click();
// cy.testid('AdminAuthForm_disableButton_none').click(); // cy.testid('AdminAuthForm_disableButton_none').click();
// fill OAuth
cy.contains('Add authentication').click(); cy.contains('Add authentication').click();
cy.contains('OAuth 2.0').click(); cy.contains('OAuth 2.0').click();
cy.testid('AdminAuthForm_oauthAuth_oauth').type('http://localhost:16009/dex/auth'); cy.testid('AdminAuthForm_oauthAuth_oauth').type('http://localhost:16009/dex/auth');
cy.testid('AdminAuthForm_oauthToken_oauth').type('http://localhost:16009/dex/token'); cy.testid('AdminAuthForm_oauthToken_oauth').type('http://localhost:16009/dex/token');
cy.testid('AdminAuthForm_oauthScope_oauth').type('openid'); cy.testid('AdminAuthForm_oauthScope_oauth').type('openid email profile');
cy.testid('AdminAuthForm_oauthClient_oauth').type('my-app'); cy.testid('AdminAuthForm_oauthClient_oauth').type('my-app');
cy.testid('AdminAuthForm_oauthClientSecret_oauth').type('my-secret'); cy.testid('AdminAuthForm_oauthClientSecret_oauth').type('my-secret');
cy.testid('AdminAuthForm_oauthLoginField_oauth').type('username'); cy.testid('AdminAuthForm_oauthLoginField_oauth').type('name');
cy.contains('Save').click(); cy.testid('AdminAuthForm_oauthSaveNotDefinedLogins_oauth').click();
cy.testid('AdminAuthForm_oauthEmailField_oauth').type('email');
cy.testid('AdminAuthTab_saveButton').click();
cy.testid('WidgetIconPanel_menu').click(); cy.testid('WidgetIconPanel_menu').click();
cy.contains('File').click(); cy.contains('File').click();
cy.contains('Logout').click(); cy.contains('Logout').click();
cy.testid('LoginPage_linkRegularUser').click(); cy.testid('LoginPage_linkRegularUser').click();
cy.testid('LoginPage_loginButton_OAuth 2.0').click();
// login on DEX // login two times
cy.get('#login').clear().type('test@example.com'); for (let index of [1, 2]) {
cy.get('#password').clear().type('test'); // login as OAuth
cy.get('#submit-login').click(); cy.testid('LoginPage_loginButton_OAuth 2.0').click();
// test - user is logged in
cy.get('Database not selected'); // login on DEX
cy.get('#login').clear().type('test@example.com');
cy.get('#password').clear().type('test');
cy.get('#submit-login').click();
// logout
cy.testid('WidgetIconPanel_menu').click();
cy.contains('File').click();
cy.contains('Logout').click();
cy.testid('NotLoggedPage_loginButton').click();
}
// Logout and login again as admin
cy.testid('LoginPage_linkAdmin').click();
cy.testid('LoginPage_password').type('adminpwd');
cy.testid('LoginPage_submitLogin').click();
cy.testid('AdminMenuWidget_itemUsers').click();
cy.contains('test@example.com');
cy.contains('Rows: 1');
}); });
}); });

View File

@@ -30,8 +30,8 @@
{/if} {/if}
<div class="button"> <div class="button">
<FormStyledButton value="Log In" on:click={handleLogin} /> <FormStyledButton value="Log In" on:click={handleLogin} data-testid="NotLoggedPage_loginButton" />
<FormStyledButton value="Log Out" on:click={doLogout} /> <FormStyledButton value="Log Out" on:click={doLogout} data-testid="NotLoggedPage_logoutButton" />
</div> </div>
</div> </div>
</SpecialPageLayout> </SpecialPageLayout>

View File

@@ -16,7 +16,7 @@
</script> </script>
<div class="button" class:disabled {title}> <div class="button" class:disabled {title}>
<div class="inner" class:disabled on:click={handleClick}> <div class="inner" class:disabled on:click={handleClick} data-testid={$$props['data-testid']}>
<span class="icon" class:disabled><FontIcon {icon} /></span> <span class="icon" class:disabled><FontIcon {icon} /></span>
<slot /> <slot />
{#if iconAfter} {#if iconAfter}