Tag: chai http

node.js mongoose chai-http RESTful APItesting(唯一字段)的行为与手动ARC APItesting不同

各位开发者, 我编写了一个基于node.js和mongoose的RESTful API服务器。 在编写相应的testing时,我对使用chai-http进行自动化testing和使用ARC(高级REST客户端,chrome插件)的手动APItesting之间的明显不同之处有着奇怪的体验。 我的用户模型(见下面的定义)有一个唯一的“用户名”字段。 当我使用ARC使用现有的用户名login新用户时,我按照预期从mongodb驱动程序中获取E11000。 当我这样做(至less我这样认为)使用chai-http.request.post,我得到一个statuscode 200,一个SUCCESS结果,我有两个用户在我的testing数据库集合中具有相同的用户名! 用户模式模式,包括/挂钩/导出等。ommited: const userSchema = new Schema({ admin_info: AdminInfo, role: { type: String, required: true}, username: { type: String, required: true, unique: true, index: { unique: true } }, password: { type: String, required: true }, firstname: String, lastname: String, mail: String, }); 用于POST /用户的通用路由处理函数,其中“model”是上述用户模式的一个实例: function addEntry(req, res, […]

用mocha-chai superagenttesting多个同时进行的会话

我正在尝试编写多个套接字连接的testing,我需要多个会话(同时) ,因为它们由服务器端的会话ID标识。 在下面的例子client1将连接和握手将通过与会话ID的cookie,所以我可以使用express-socket.io会话获取该用户的会话数据…. 我遇到的问题是,当我想连接第二个套接字,握手数据传递通过显然将是相同的第一个套接字。 我不能只发送一个注销请求,并更改用户,因为我试图testing多人游戏function。 var agent = chai.request.agent(app) describe("authentication", function () { it('login as user', function (done) { agent .post('/login') .send({ username: username, password: password }) .then(function (res) { expect(res).to.have.status(200); expect(res).to.have.cookie('connect.sid'); done() }) .catch(function (err) { done(err) }) }); }) describe("socket tests", function () { var client1, client2; it('can connect to socket', function (done) […]

设置接受的CA列表并忽略chai-http的SSL错误

我正在尝试用chai / chai-http编写我的节点代码的unit testing。 一切工作正常,直到我将我的服务器切换到HTTPS服务器,但由于我的证书是由公司内部的根签名和我使用的证书的通用名称不匹配本地主机,chai是在我的请求上抛出一个错误。 我想要做以下事情: 忽略与域名validation相关的SSL错误。 设置要检查的CA列表。 如果不能这样做,我只需跳过所有的客户端证书检查即可。 我的代码如下: var chai = require('chai'); var chaiHttp = require('chai-http'); var https = require('https'); var fs = require('fs'); var server = require('../app.js'); chai.should(); chai.use(chaiHttp); https.globalAgent.options.ca = [ fs.readFileSync('./ssl/Root.cer'), ]; describe('Attachments', function () { it('should succeed when passed valid arguments', function (done) { chai.request(server) .get('/10881057300D0A4E8E8586542AA3626E41') .set('userId', 'user') .set('region', […]

摩卡chai-http响应总是返回null

我正在通过mocha chai-httptestingNode.js中的服务器响应。 我得到的回应始终为空 。 但是,当我没有摩卡testing亚军定期运行请求,一切都很好。 这是服务器的代码: var Babble = { messages: new Array() , users: new Array(),userCount:0 }; // var http = require('http'); var urlUtil = require('url'); var queryUtil = require('querystring'); var Babble = { messages: new Array() , users: new Array(),userCount:0 }; // Data object to save all chat logs var server = http.createServer(function(request, […]

testingGraphQL API

我正在testing我的GraphQL API,但我想稍微清理一下。 值得注意的是,我正在使用chai-http作为networking请求。 这是我目前正在做的(哪些工作): let createUser = (()=> { return new Promise((resolve, reject) => { chai.request(server) .post('/api/graphql/') .set('content-type', 'application/json') .send({ 'query' : 'mutation users { \ user : addUser(inputs: { \ firstName: \"Test\", \ lastName: \"User\", \ email: \"test@test.com\", \ }) { \ id, \ firstName \ } \ }' }) .end((err, res) => { […]