Тест пройден, даже если я не могу найти идентификатор в файле + Сохранить имя файла

Я создаю автоматизацию для проверки моих файлов, содержащихся в каталоге. В моем каталоге N файлов. Мне нужно найти идентификатор в моих файлах. Когда вы найдете этот идентификатор, сохраните имя файла и прекратите поиск остальных файлов. Если вы не нашли ID в файлах, верните ERROR, то есть сломайте мой тест.

Ниже мой код. В этом коде я могу искать файл, но не могу сохранить имя файла, и если я его не найду, тест прервется (не пройден).

cy.task('getFiles', 'batch/22896431000382/uds/processed')
        .then(result => {

          const x = result

          let continue_loop = true
          cy.wrap(continue_loop, { log: false }).as('continue')

          for (let i = 0; i < x.length; i++) {
            cy.get('@continue', { log: false }).then(continue_loop => {
              if (continue_loop) {
                cy.readFile(`batch/22896431000382/us/processed/${x[i]}`)
                  .then(txt => {

                    // checking for any failed status here
                    if (txt.includes('IdkBGxcJWaapecROrzNh')) {
                      return
                    }
                  })
              }
            })
          }
        });

Почему не ставишь continue_loop?

Chloe 19.04.2024 21:45

Отвечает ли это на ваш вопрос? Как я могу прервать цикл for внутри блока then?

Pele.Kudren 20.04.2024 08:24
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
2
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как показано в дублирующем вопросе , вам действительно придется изменить переменную continue_loop, когда вы больше не хотите... продолжать цикл.

let continue_loop = true
cy.wrap(continue_loop, {log:false}).as('continue')   

for (let i = 0; i < result.length; i++) {
  cy.get('@continue', {log:false}).then(continue_loop => {
    if (continue_loop) {

      ...
      if (txt.includes(...)) {
        continue_loop = false
        cy.wrap(continue_loop, {log:false}).as('continue')

        // save txt for later
        cy.wrap(txt).as('txt')
      }
    }
  })
}

cy.get('@txt').then(txt => {
  // the txt is found!

Другие вопросы по теме