Ошибка типа: метод Promise.prototype.then, вызываемый на несовместимом прокси-сервере получателя. - PullRequest
0 голосов
/ 20 декабря 2018

для проведения интеграционного тестирования я использовал jasmine и puppeteer, и, поскольку я прохожу образовательный курс, в соответствии с этим я решил использовать прокси-сервер js для инкапсуляции функциональности тестирования, но когда я сделаю свой тест, я столкнусь сследующая ошибка

TypeError: Method Promise.prototype.then called on incompatible receiver [object Object] 

вот мой класс CustomPage, который будет представлять собой вкладку Chrome: const puppeteer = require ('puppeteer');

class CustomPage{
    static async build(){
        const browser =await  puppeteer.launch({headless:false});
        const page = browser.newPage();

        var customPage = new CustomPage(page);
        console.log("harchi run mishe")
        return new Proxy(customPage,{
            get:function(target,property){
                return (customPage[property]||page[property]||browser[property])
            }
        })
        //return proxy;
    }

    constructor(page){
        this.page = page
    }
}


module.exports=CustomPage;

и вот мой *Файл 1009 *, который является моим тестовым файлом.

const Page = require('./helpers/page');
var tab;

describe('header representation',()=>{
    beforeEach(async(done)=>{
        tab =await Page.build();****here is the problem********
        await tab.goto('localhost:3000');
    })

    it('should show header logo',async()=>{
        const text = await tab.$eval('a.brand-logo',(el)=>el.innerHTML);
        expect(text).toEqual('Blogster');
        //done()
    })
})

Я фактически убежден, что моя проблема связана с указанной строкой. Кажется, что js не может рассматривать прокси как Обещание, однако я не смог найти ни одногорешение этого.

...