qrcode: wait for UI update in tests event when not calling fetch (#86853)
This commit is contained in:
parent
631fd54f30
commit
6fc97253ff
|
@ -28,25 +28,22 @@ const certificateWithoutValidity =
|
|||
|
||||
const qrcodeReaderTest = test.extend({
|
||||
mock: async ({ task }, use) => {
|
||||
let resolveResult = undefined
|
||||
let resultPromise = new Promise((resolve) => resolveResult = resolve)
|
||||
let resolveResultHandled = undefined
|
||||
let scanCallback = undefined
|
||||
let scanPromise = new Promise((resolve) => scanCallback = resolve)
|
||||
const terminate = Symbol()
|
||||
|
||||
class MockBrowserQRCodeReader {
|
||||
async decodeFromVideoDevice(device, element, callback) {
|
||||
while(true) {
|
||||
const result = await resultPromise
|
||||
const result = await scanPromise
|
||||
|
||||
if(result === terminate) {
|
||||
return
|
||||
}
|
||||
|
||||
resultPromise = new Promise((resolve) => resolveResult = resolve)
|
||||
scanPromise = new Promise((resolve) => scanCallback = resolve)
|
||||
|
||||
callback({ text: result })
|
||||
|
||||
resolveResultHandled()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -69,9 +66,8 @@ const qrcodeReaderTest = test.extend({
|
|||
await use({
|
||||
reader,
|
||||
scan: async (text) => {
|
||||
const resultHandled = new Promise((resolve) => resolveResultHandled = resolve)
|
||||
resolveResult(text)
|
||||
await resultHandled
|
||||
scanCallback(text)
|
||||
await new Promise((resolve) => setTimeout(resolve))
|
||||
}
|
||||
})
|
||||
vi.useRealTimers()
|
||||
|
@ -80,7 +76,8 @@ const qrcodeReaderTest = test.extend({
|
|||
|
||||
reader.remove()
|
||||
|
||||
resolveResult(terminate)
|
||||
scanCallback(terminate)
|
||||
|
||||
window.ZXingBrowser = savedZXingBrowser
|
||||
navigator.mediaDevices = undefined
|
||||
window.nacl = undefined
|
||||
|
|
Loading…
Reference in New Issue