Поскольку fs
не разрешен в Cypress / веб-браузере, я создаю макеты для fs
функций, вызываемых в моем исходном (не тестовом / электронном) коде.
Например, fs.existsSync
. Этот метод вызывается много раз и возвращает разные ответы. Поэтому вместо того, чтобы вручную издеваться и жестко кодировать все их ответы, я просто создал task
внутри макета, чтобы его можно было проверять динамически.
window.Cypress.fs = require('fs')
window.Cypress.fs.existsSync = (file) => {
var retVal = ''
cy.task('existsSync', file).then((result) => { retVal = result })
return retVal
}
it('Sample test', () => {
cy.visit('http://localhost:8080')
})
А в моем plugins.js
задача проста реализовано как:
on('task', {
existsSync (file) {
return fs.existsSync(file)
}
})
Но затем я получаю сообщение об ошибке:
Uncaught Uncaught CypressError: Cypress detected that you returned a promise from a command while also invoking one or more cy commands in that promise.
The command that returned the promise was:
> `cy.visit()`
The cy command you invoked inside the promise was:
> `cy.task()`
fs.existsSync()
вызывается во время «загрузки». Таким образом, он вызывается во время создания приложения (во время cy.visit()
)
Как использовать fs.existsSync
??
Help !!!