`I.waitForFile` (FileSystem helper) fails if directory does not exist (yet)
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 72/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Pouca atividade
- Stack de tecnologia
- javascript, nodejs
- Domínio
- testing
Direção de pesquisa
Comece em lib/helper/FileSystem.js, em isFileExists, e rastreie como I.waitForFile lida com a ausência do diretório pai e com a limpeza do timeout. Confirme o comportamento com a cobertura existente do helper FileSystem, se disponível; considera-se concluído quando a espera não lança uma exceção mesmo que o diretório esteja ausente inicialmente e ainda detecte o arquivo assim que ele aparecer.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
I.waitForFile sometimes fails and throws weird exceptions if the directory containing the expected file does not exist yet.
Example (all output goes to ${codecept_dir}/output/):
I.handleDownloads('downloads/example.txt');
I.click('button.download');
I.amInPath('output/downloads');
I.waitForFile('example.txt', 5);
If the directory ${codecept_dir}/output/downloads does not exist yet (it will be created by the browser download at some point in time), the function I.waitForFile will throw an exception ReferenceError: Cannot access 'watcher' before initialization and the test will fail.
Root cause is in the function isFileExists of the FileSystem helper. The line const watcher = fs.watch(dir, (eventType, filename) => {... will throw if dir does not exist yet. This exception remains unhandled. Later, the timer for the 5sec timeout detection will try to close the uninitialized watcher, leading to the ReferenceError.
I will try to create a PR.
- Linguagem predominante
- JavaScript
- Estrelas
- 4.2k
- Forks
- 756
- Merge médio
- 2d 9h
- PRs com merge (30d)
- 16
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de codeceptjs/CodeceptJS
-
stale
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
codeceptjs/CodeceptJS#5358 · 1 comentário ·
-
stale
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
codeceptjs/CodeceptJS#4958 · 10 comentários · 2 reações ·
-
stale
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 72/100
codeceptjs/CodeceptJS#4778 · 3 comentários ·
-
stale
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 38/100
codeceptjs/CodeceptJS#5618 · 1 comentário ·
-
stale
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
codeceptjs/CodeceptJS#5585 · 1 comentário ·
Todas as issues de codeceptjs/CodeceptJS
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
HarperFast/skills#96 ·
-
[Block] Latest Posts [Type] Bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
-
Daemon passes --experimental-wasm-jspi unconditionally on Node >= 24; Node 26 rejects the flag Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Automattic/studio#4908 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100
sugarlabs/musicblocks#8847 ·