Я проверил простой сценарий, и он работает без каких-либо ошибок на моей стороне.
server.js
var express = require('express');
var fs = require('fs');
var app = express();
app.get('/', function (req, res) {
res.send('<html>\n' +
'<head>\n' +
'</head>\n' +
'<body>\n' +
'<a href="/download/">Download file</a>\n' +
'</body>\n' +
'</html>');
});
app.get('/download/', (req, res) => {
var files = fs.createReadStream("text-document.txt");
res.writeHead(200, {'Content-disposition': 'attachment; filename=text-document.txt'});
files.pipe(res)
})
app.listen(3000, function () {
console.log('http://localhost:3000/');
});
test.js
import { Selector } from 'testcafe';
import fs from 'fs';
fixture `fixture`;
test
.page('http://localhost:3000/')
('download', async t => {
await t.click(Selector('body > a'));
await t.wait(1000);
await t.expect(fs.existsSync('path-to-file\\text-document.txt')).ok();
});
Команда:
testcafe chrome test.js
Результат:
fixture
√ download
1 passed (2s)
Не могли бы вы уточнить вашидетали системного окружения? Будет здорово, если вы сможете представить свой собственный простой проект, подобный приведенному выше. Это поможет нам воспроизвести проблему.