Мокко перед функцией не работает правильно - PullRequest
0 голосов
/ 19 сентября 2019

Я пытаюсь прочитать CSV-файл в моем before хуке, но он по какой-то причине выполняется после самого теста.

let csvPath = path.join(__dirname, '/sample-conv.csv')
let messages = []


// read csv and push rows into an array
before(done => {
    fs.createReadStream(csvPath).pipe(csv.parse({ headers: true })).on('data', row => {
        messages.push(row)
    }).on('end', () => {
        console.log('before', messages) // this logs the full array correctly
        done()
    })
})


describe('Should return correct responses', () => {

    let hardCoded = ['Hi', 'This is a response'] // hard codes responses to stub chatbot

    console.log('after', messages) // logs empty array

    it('dummy', done => {  
        expect(true).eq(true);
        done()
    })

    // messages.forEach((row, i) => {
    //     it('Should return expected response for message #' + (i + 1), done => {
    //         const { send, expected } = row
    //         let actual = hardCoded[i]
    //         expect(actual).to.equal(expected)
    //         done()
    //     })
    // })

})

Есть также проблема, которая закомментирована itфункция не выполняется вообще.Я добавил фиктивный тест, чтобы попытаться исправить проблему before.Я предполагаю, что это не работает из-за цикла.

...