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

  1. Izgleda da imate tipfeler u definiciji modula. Imate module.export={...}, ali ispravno je module.exports={...}.
  2. 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.