Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

`I.waitForFile` (FileSystem helper) fails if directory does not exist (yet)

Ouverte Adaptée aux débutants
#5,420 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
72/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Calme
Stack technique
javascript, nodejs
Domaine
testing

Piste de recherche

Commencez dans lib/helper/FileSystem.js au niveau de isFileExists et suivez la manière dont I.waitForFile gère l’absence du répertoire parent et le nettoyage de son timeout. Confirmez le comportement avec la couverture existante de l’helper FileSystem, si elle est disponible ; c’est terminé lorsque l’attente ne lève pas d’exception alors que le répertoire est initialement absent et détecte toujours le fichier dès qu’il apparaît.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

stale

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.

Langage dominant
JavaScript
Étoiles
4.2k
Forks
756
Merge moyen
1 j 6 h
PR mergées (30 j)
19

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de codeceptjs/CodeceptJS

Toutes les issues de codeceptjs/CodeceptJS

Issues similaires

Plus d'issues JavaScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.