So jetzt ist die Ausgabe:Wie können Sie Supertest-Anfragen verketten, wenn einer von dem anderen abhängig ist?
Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises
Warning: .end() was called twice. This is not supported in superagent
GET /api/things 200 3.009 ms - 2414
superagent: double callback bug
WARNING
Die Sache ist, ich brauche das res
Objekt, das ich von wieder .end()
, um den Aufruf der ETag Funktionalität zu testen. Es geht nie in die zweite .end()
und druckt dieses Konsolenprotokoll nicht aus.
Der innerste .catch(done)
ist derjenige, der aufgerufen wird.
it('should return things', done => {
const promises = [];
promises.push(Thing.create(testThing));
promises.push(Thing.create(testThing));
Promise.all(promises)
.then(things => {
request(app)
.get('/api/things')
.expect(200)
.end((err, res) => {
const etag = res.get('ETag')
if (err)
return done(err);
request(app)
.get('/api/things')
.set('If-None-Match', etag)
.expect(304)
.end((err, res) => {
console.log('are we able to make it back here?');
expect(err).to.not.exist;
expect(res.body.data).to.be.undefined;
expect(res.get('ETag')).to.be.equal(etag);
return done(err);
})
})
.catch(done);
})
.catch(done);
});
});
Hat jemand irgendwelche Ideen, warum dies passieren könnte, und wie man so etwas testet?
Ich weiß, dass Sie das bereits gelöst haben, aber Sie hätten auch die Funktion 'sendStatus' verwenden können, wenn Sie nicht explizit eine JSON-Antwort und einen Inhaltstyp benötigen. 'res.sendStatus (304);' – Mikelax