typescript - testCafe: Korištenje Role u testnom skriptu
** Prvi problem/pitanje:**
Definirao sam 2 uloge u zasebnoj datoteci (/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 zatim koristio jednu od definiranih uloga: NormalUser u testnom skriptu (druga datoteka)
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 nije uspio jer: "Očekuje se da će argument 'role' biti instanca Role, ali bio je neodređen."
Kada imam ovo u jednoj datoteci - test je prošao, pa problem mora biti u pogrešno definiranoj ulozi (kako to ispravno napraviti?)
II Drugi problem/pitanje
Kada stvaram konstruktor Role: Role( URL, func( t ) [, options] ) moram navesti URL stranice za prijavu, a zatim kada kreiram test u fiksturama moram konfigurirati fiksturu - specificirajući početnu web stranicu,
fiksni element My fixture .stranica http://www.example.com/;
tako da se ova stranica dvostruko učitava...
Kako to izbjeći?
Odgovor #1
- Izgleda da imate tipfeler u definiciji modula. Imate
module.export={...}, ali ispravno jemodule.exports={...}. - Moguće je ne navesti stranicu za test. U tom slučaju, test počinje od stranice 'prazno', a zatim ćete biti preusmjereni na stranicu
Role/login.