Okta is a customizable, secure, and drop-in solution to add authentication and authorization services to your applications.
To set up SSO with Okta, follow instructions in here.
After Okta account is connected to Pricefx, there will be two ways to test SSO login:
Okta will provide “Embed app link” which you can use to directly login to Pricefx. Example of Cypress test:
it('Login to Price f(x) trough OKTA embed app link', () => { const embedAppLink = "https://trial-7507976.okta.com/home/trial-7507976_pricefx_2/0oa16ptwcfEfr2hrU697/aln16pujzfCtc94xi697" cy.visit(embedAppLink); cy.url().should('contain', 'pricefx'); //Asserting that we are in Pricefx page cy.get('#input28').type(username + '{enter}'); //Filling Okta username cy.get('#input59').type(password + '{enter}'); //Filling Okta password cy.waitForSpinner(); cy.log(`ASSERT THAT WE ARE LOGGED INTO PRICEFX IN ${partition} PARTITION`); cy.url().should('contain', 'pricefx.com'); cy.url().should('contain', `partition=${partition}`); });
Login into Okta, where you will have installed Pricefx button (which will redirect you to Pricefx). Example of Cypress test:
it('Login to Price f(x) trough OKTA dashboard', () => { const oktalink = "https://trial-7507976.okta.com/app/UserHome" cy.log('Login in into Okta dashobard first, and then from dashboard entering Pricefx app'); cy.visit(oktalink); cy.get('#input28').type(username + '{enter}'); //Filling Okta Username cy.get('#input59').type(password + '{enter}'); //Filling Okta password cy.url().should('contain', 'UserHome'); cy.contains('Price f(x)').invoke('attr', 'href').then(myLink => { cy.visit(myLink); }) //Making sure that we don't open website in new tab in Chrome (because Cypress can't work in new tab) cy.waitForSpinner(); cy.log(`ASSERT THAT WE ARE LOGGED INTO PRICEFX IN ${partition} PARTITION`); cy.url().should('contain', 'pricefx.com'); cy.url().should('contain', `partition=${partition}`); });