मैं एक परीक्षण लिखने की कोशिश कर रहा हूं जो जांचता है कि कोई एपीआई रूट सही सामग्री के साथ ज़िप फ़ाइल आउटपुट करता है या नहीं।node.js सर्वर पर supertest/superagent के साथ प्रतिक्रिया आउटपुट बफर/स्ट्रीम पढ़ें
मैं परीक्षण के लिए मोचा और सुपरटेस्ट का उपयोग कर रहा हूं, और मैं वास्तव में आउटपुट स्ट्रीम/बफर पढ़ना चाहता हूं, ज़िप फ़ाइल सामग्री को पढ़ना चाहता हूं और देख सकता हूं कि सामग्री सही है या नहीं।
कोई विचार मुझे यह कैसे करना चाहिए? जब मैं res.body
पढ़ने की कोशिश करता हूं, तो यह केवल एक खाली वस्तु है।
request(app)
.get("/api/v1/orders/download?id[]=1&id=2")
.set("Authorization", authData)
.expect(200)
.expect('Content-Type', /application\/zip/)
.end(function (err, res) {
if (err) return done(err);
console.log('body:', res.body)
// Write the temp HTML file to filesystem using utf-8 encoding
var zip = new AdmZip(res.body);
var zipEntries = zip.getEntries();
console.log('zipentries:', zipEntries);
zipEntries.forEach(function(zipEntry) {
console.log(zipEntry.toString()); // outputs zip entries information
});
done();
});
यह बहुत अच्छा काम करता है, हालांकि मुझे अनुरोध में '.buffer()' जोड़ना पड़ा। – Nate
@ डॉट्स [http://visionmedia.github.io/superagent/#parsing-response-bodies) से @Nate के साथ, "अगर प्रतिक्रिया बफरिंग सक्षम नहीं है (.buffer (false)) तो प्रतिक्रिया घटना होगी शरीर के पार्सर को खत्म करने के इंतजार किए बिना उत्सर्जित रहें, इसलिए प्रतिक्रिया। कोई भी उपलब्ध नहीं होगा "। – ZachB
@ZachB तो '.buffer()। पार्स (बाइनरीपार्स) '? – rcoup