我正在尝试编写一个测试,检查API路由是否输出具有正确内容的ZIP文件.
我正在使用mocha和supertest进行测试,我想实际读取输出流/缓冲区,读取zip文件内容并查看内容是否正确.
任何想法我该怎么做?当我尝试阅读时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();
});
Run Code Online (Sandbox Code Playgroud) 像zsh和bash这样的shell有bang命令,它们以感叹号开头并扩展到用户历史记录中的项目.
要获取运行的最后一个命令的最后一个参数,可以使用!$,例如
$ echo one two three
$ echo !$ !$ !$
> three three three
Run Code Online (Sandbox Code Playgroud)
在zsh中,可以交互式地扩展这些bang命令:
touch foo bar
ls !$<TAB>
Run Code Online (Sandbox Code Playgroud)
!$将扩展为foo内联.
这非常有用,因为它经常使我免于犯错:我按下tab扩展并确保我做对了,并C-/在我有信心时撤消扩展.
bash中是否有设置来实现bang命令的交互式扩展?
如何扩展子壳和一般变量(即echo $(uname)<TAB>到echo Linux和echo $SHELL<TAB>到echo /bin/bash).
简而言之,这就是我的情况:构建了一个flash程序,它被嵌入到不同的站点页面中.没有能力更改闪存程序,我想要一个小的附加组件(让我们将其命名为附加组件),因此它会稍微扩展闪存程序的功能.示例:我的flash程序要求主服务器报价,我需要显示一些有关所请求报价的其他信息.
数据由我的服务器json-serialized返回,我可以添加任何数据,但由于flash程序不显示其他信息,我希望它显示在窗口,页面上的小部件或其他东西一样.
先决条件:a)Windows操作系统b)应该按插件读取Http流量(req/resp),并且插件将进行必要的计算/操作,并且(可能)在需要时(可能)其他请求c)能够在任何显示中显示计算结果因此最终用户可以看到d)最好只在某些请求被触发时调用附加组件(例如http:// url/get/quote/1234)e)我不想做任何额外的请求; 从flash程序获取的http响应获取额外数据对我来说很好.
我认为的选择是: