keycloak-scim/tests/cypress/integration/clients_test.spec.js
Aboullos daec4957f2
Add cypress framework (#271)
* Add cypress framework

* Add PR change requests

* Add initial .yml file for cypress tests

* Modify Run Keycloak line

* Modify Run Keycloak lines

* Modify Cypress test run

* Modify wait times

* Add more time

* Modify yarn start to npx http-server

* Try Cypress separate step

* Add test to set new admin console

* Modify uses to run

* Change yarn to npx http-server

* Add parameter to npx http-server

* Trigger GitHub actions

* Trigger GitHub actions

* Modify client_scope test messages

* Set headless mode

* Add steps to store artifacts

* Modify .yml

* Rebase onto realm fix and update real role message

* Update yaml file for artifact upload
2021-01-12 12:04:52 -05:00

101 lines
No EOL
3 KiB
JavaScript

import LoginPage from '../support/pages/LoginPage.js'
import HeaderPage from '../support/pages/admin_console/HeaderPage.js'
import ListingPage from '../support/pages/admin_console/ListingPage.js'
import SidebarPage from '../support/pages/admin_console/SidebarPage.js'
import CreateClientPage from '../support/pages/admin_console/manage/clients/CreateClientPage.js'
describe('Clients test', function () {
const itemId = 'client_1';
const loginPage = new LoginPage();
const headerPage = new HeaderPage();
const sidebarPage = new SidebarPage();
const listingPage = new ListingPage();
const createClientPage = new CreateClientPage();
describe('Client creation', function () {
beforeEach(function () {
cy.visit('')
})
it('should fail creating client', function () {
loginPage.logIn();
sidebarPage.goToClients();
listingPage.goToCreateItem();
createClientPage
.continue()
.checkClientTypeRequiredMessage()
.checkClientIdRequiredMessage();
createClientPage
.fillClientData(itemId)
.continue()
.checkClientTypeRequiredMessage()
.checkClientIdRequiredMessage(false);
createClientPage
.fillClientData('')
.selectClientType('openid-connect')
.continue()
.checkClientTypeRequiredMessage(false)
.checkClientIdRequiredMessage();
createClientPage
.fillClientData('account')
.continue()
.continue();
// The error should inform about duplicated name/id
headerPage.checkNotificationMessage('Could not create client: \'Error: Request failed with status code 409\'');
});
it('should create client', function () {
loginPage.logIn();
sidebarPage.goToClients();
listingPage
.itemExist(itemId, false)
.goToCreateItem();
createClientPage
.selectClientType('openid-connect')
.fillClientData(itemId)
.continue()
.continue();
headerPage.checkNotificationMessage('Client created successfully');
sidebarPage.goToClients();
listingPage
.itemExist(itemId)
.searchItem(itemId)
.itemExist(itemId);
});
})
describe('Client elimination', function () {
beforeEach(function () {
cy.visit('')
})
it('should delete client', function () {
loginPage.logIn();
sidebarPage.goToClients();
listingPage
.itemExist(itemId)
.deleteItem(itemId); // There should be a confirmation pop-up
headerPage.checkNotificationMessage('The client has been deleted');
listingPage
.itemExist(itemId, false);
});
})
})