Vyhledávání na webu

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

  1. Vypadá to, že ve vaší definici modulu máte překlep. Máte module.export={...}, ale správné použití je module.exports={...}.
  2. 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.