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
staticPasswords:
- email: "test@example.com"
emailVerified: true
hash: "$2y$10$JcmlXnV1y7.egUdKwYNbseOnqYVIGc323gtvvHh4ZuSPZB30veYZy"
username: "test"
userID: "1234"
allowedScopes:
- openid
- email
- profile

View File

@@ -28,33 +28,55 @@ describe('Team edition tests', () => {
cy.themeshot('authadmin');
});
it.only('OAuth authentication', () => {
it('OAuth authentication', () => {
cy.testid('LoginPage_linkAdmin').click();
cy.testid('LoginPage_password').type('adminpwd');
cy.testid('LoginPage_submitLogin').click();
cy.testid('AdminMenuWidget_itemAuthentication').click();
// cy.testid('AdminAuthForm_disableButton_local').click();
// cy.testid('AdminAuthForm_disableButton_none').click();
// fill OAuth
cy.contains('Add authentication').click();
cy.contains('OAuth 2.0').click();
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_oauthScope_oauth').type('openid');
cy.testid('AdminAuthForm_oauthScope_oauth').type('openid email profile');
cy.testid('AdminAuthForm_oauthClient_oauth').type('my-app');
cy.testid('AdminAuthForm_oauthClientSecret_oauth').type('my-secret');
cy.testid('AdminAuthForm_oauthLoginField_oauth').type('username');
cy.contains('Save').click();
cy.testid('AdminAuthForm_oauthLoginField_oauth').type('name');
cy.testid('AdminAuthForm_oauthSaveNotDefinedLogins_oauth').click();
cy.testid('AdminAuthForm_oauthEmailField_oauth').type('email');
cy.testid('AdminAuthTab_saveButton').click();
cy.testid('WidgetIconPanel_menu').click();
cy.contains('File').click();
cy.contains('Logout').click();
cy.testid('LoginPage_linkRegularUser').click();
cy.testid('LoginPage_loginButton_OAuth 2.0').click();
// login on DEX
cy.get('#login').clear().type('test@example.com');
cy.get('#password').clear().type('test');
cy.get('#submit-login').click();
// test - user is logged in
cy.get('Database not selected');
// login two times
for (let index of [1, 2]) {
// login as OAuth
cy.testid('LoginPage_loginButton_OAuth 2.0').click();
// 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}
<div class="button">
<FormStyledButton value="Log In" on:click={handleLogin} />
<FormStyledButton value="Log Out" on:click={doLogout} />
<FormStyledButton value="Log In" on:click={handleLogin} data-testid="NotLoggedPage_loginButton" />
<FormStyledButton value="Log Out" on:click={doLogout} data-testid="NotLoggedPage_logoutButton" />
</div>
</div>
</SpecialPageLayout>

View File

@@ -16,7 +16,7 @@
</script>
<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>
<slot />
{#if iconAfter}