t.useRole Method
Activates a role. Chainable.
t.useRole(role) → this | Promise<any>
Parameter | Type | Description |
---|---|---|
role |
Object | The role to activate. |
import * as path from 'path';
const loginUrl = path.join(__dirname, './pages/login-page.html');
import { Role, Selector } from 'testcafe';
const registeredUser = Role(loginUrl, async t => {
await t
.typeText('#login', 'User1')
.typeText('#password', 'pa$$w0rd')
.click('#sign-in');
});
fixture`TestController.useRole`
.page`./pages/index.html`;
test('Check avatar after login', async t => {
await t
.useRole(registeredUser)
.expect(Selector('#avatar').visible).ok();
});
Activate the anonymous role to clear the authentication data storage and log out of all websites:
import * as path from 'path';
const loginUrl = path.join(__dirname, './pages/login-page.html');
import { Role, Selector } from 'testcafe';
const payingUser = Role(loginUrl, async t => {
await t
.typeText('#login', 'User1')
.typeText('#password', 'pa$$w0rd')
.click('#sign-in');
});
fixture`TestController.useRole`
.page`./pages/paid.html`;
test('Paid content is displayed for paying users', async t => {
await t
.useRole(payingUser)
.expect(Selector('#paid-content').visible).ok()
.useRole(Role.anonymous())
.expect(Selector('#paid-content').visible).notOk();
});