Доступ к пользовательским свойствам окна с помощью Testcafe - PullRequest
2 голосов
/ 21 июня 2019

Итак, в нашем приложении у нас есть собственное свойство окна под названиемactMap.Поэтому, когда вы загружаете наш сайт и заходите в консоль и вводите "window.reactMap.loaded ()", он возвращает true или false.Но когда я попытался сделать это в тесте TestCafe, добавив:

const mapLoaded = ClientFunction(() => window.reactMap.loaded());

, он просто жалуется, что Property 'reactMap' does not exist on type 'Window'. Как мне запустить этот бит кода в тесте TestCafe?спасибо

1 Ответ

2 голосов
/ 21 июня 2019

Это означает, что вы выполняете ClientFunction до того, как ваше приложение инициализирует свойство window.reactMap. Попробуйте изменить свой тестовый код следующим образом:

const waitForProperty = ClientFunction(() => {
     return new Promise(function (resolve, reject){
         var intervalId = null;
         var timeoutId = null;
         var checkCondition = function () {
              return window.reactMap;
         }

         timeoutId = window.setTimeout(function () {
             window.clearInterval(intervalId);            

             if (checkCondition())
                resolve();
             else
                reject();
         }, 10000);
         intervalId = window.createInterval(function (){
            if (checkCondition()) {
                window.clearInterval(intervalId);
                resolve();
            }
         }, 1000);
     });
});


await waitForProperty();

const mapLoaded = await ClientFunction(() => window.reactMap.loaded())();

...