для проведения интеграционного тестирования я использовал 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 не может рассматривать прокси как Обещание, однако я не смог найти ни одногорешение этого.