typescript - testCafe: Použití Role ve testovacím skriptu
** První problém/otázka:**
Definoval jsem 2 role v samostatném souboru (/Support/utilities) :
import channelsPage from '..'
import config from '../Config/config';
import {Role} from 'testcafe';
import loginPage from '..';
let l1 = require('../support/global').log[1];
let l0 = require('../support/global').log[0];
const SuperUser = Role(config.baseUrl, async t => {
//Log in as superuser
await loginPage.logIn(l1.username, l1.password)
//Check if proper site opened
if (await loginPage.keycloakLoginError.exists) {
await loginPage.logIn(l1.username, l1.password)
}
else {
await t.expect(channelsPage.lineupsAndPackages.exists).ok();
await t.expect(channelsPage.createDropUp.exists).ok();
}
})
const NormalUser = Role(config.baseUrl, async t => {
//Log in as superuser
await loginPage.logIn(l0.username, l0.password)
//Check if proper site opened
if (await loginPage.keycloakLoginError.exists) {
await loginPage.logIn(l1.username, l1.password)
}
else {
await t.expect(channelsPage.lineupsAndPackages.exists).ok();
await t.expect(channelsPage.createDropUp.exists).ok();
}
})
module.export ={
SuperUser: SuperUser,
NormalUser: NormalUser
}
a pak použil jednu z definovaných rolí: NormalUser v testovacím skriptu (jiný soubor)
import config from './Config/config';
import NormalUser from './Support/utilities';
fixture`SanityTests`
.beforeEach(async t => {
await t.maximizeWindow()
})
.page`${config.baseUrl}`;
test('Search', async t => {
await t.maximizeWindow();
//Log in
await t.useRole(NormalUser.NormalUser)
});
Test selhal, protože: "Argument 'role' se očekává jako instance Role, ale byl nedefinovaný."
Když je mám všechny v jednom souboru - test prošel, takže problém musí být ve špatně definované roli (jak to udělat správně?)
II Druhý problém/otázka
Když vytvářím konstruktor Role: Role(URL, func(t) [, options]) musím uvést URL přihlašovací stránky a poté, když vytvářím test do fixtrů, musím nakonfigurovat fixture - specifikovat startovní webovou stránku,
příprava Moje příprava .stránka http://www.example.com/;
takže tato stránka se načítá dvakrát...
Jak se tomu vyhnout?
Odpověď č. 1
- Vypadá to, že ve vaší definici modulu máte překlep. Máte
module.export={...}, ale správné použití jemodule.exports={...}. - Je možné nespecifikovat stránku pro test. V takovém případě test začíná na stránce „prázdná“ a poté budete přesměrováni na stránku
Role/login.