mirror of https://github.com/nocodb/nocodb
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.4 KiB
42 lines
1.4 KiB
import { Page } from '@playwright/test'; |
|
import BasePage from '../Base'; |
|
import { ProjectsPage } from '../ProjectsPage'; |
|
import { CloudSSOLoginPage } from './SSOLoginPage'; |
|
|
|
export class CloudSAMLLoginPage extends BasePage { |
|
readonly projectsPage: ProjectsPage; |
|
readonly ssoLoginPage: CloudSSOLoginPage; |
|
|
|
constructor(rootPage: Page) { |
|
super(rootPage); |
|
this.projectsPage = new ProjectsPage(rootPage); |
|
this.ssoLoginPage = new CloudSSOLoginPage(rootPage); |
|
} |
|
|
|
async goto(_title = 'test', email: string) { |
|
await this.ssoLoginPage.goto(email); |
|
await this.ssoLoginPage.signIn({ email }); |
|
// // reload page to get latest app info |
|
// await this.rootPage.reload({ waitUntil: 'networkidle' }); |
|
// // click sign in with SAML |
|
// await this.rootPage.locator(`button:has-text("Sign in with ${title}")`).click(); |
|
} |
|
|
|
get() { |
|
return this.rootPage.locator('html'); |
|
} |
|
|
|
async signIn({ email }: { email: string }) { |
|
const signIn = this.get(); |
|
await signIn.locator('#userName').waitFor(); |
|
|
|
await signIn.locator(`#userName`).fill(email); |
|
await signIn.locator(`#email`).fill(email); |
|
await Promise.all([ |
|
this.rootPage.waitForNavigation({ url: /localhost:3000/ }), |
|
signIn.locator(`#btn-sign-in`).click(), |
|
]); |
|
|
|
await this.rootPage.locator(`[data-testid="nc-sidebar-userinfo"]:has-text("${email.split('@')[0]}")`); |
|
} |
|
}
|
|
|