sails.js sails.io.js не работает с node.js - тестирование
Я давно хотел использовать sails.io.js для тестирования в node.js. Я хотел иметь возможность делать все, что мог, на клиенте так же, как работает код клиента, включая подписку на события модели и тому подобное.
Однако я не могу понять, почему этот простой код входа в систему sails.io.js не работает с моим сервером sails. Приложение сервера sails просто не распознает сообщение, хотя, кажется, что-то получает:
let io = require('sails.io.js')( require('socket.io-client') );
io.sails.url = 'http://localhost:1337';
io.socket.request({
method: 'post',
url: '/auth/local',
data: { identifier: 'juser', password: 'password',submit:'login' },
headers: {
'content-type': 'application/x-www-form-urlencoded; application/json; charset=utf-8'
},
type: 'form' // not sure if this is legal but doesn't make a difference.
}, function (body, JWR) {
console.log('login Sails responded with: ', body);
console.log('login with headers: ', JWR.headers);
console.log('login and with status code: ', JWR.statusCode);
io.socket.disconnect();
});
Кстати, я также попробовал io.socket.post, и это, кажется, не имеет значения.
Сервер отлично работает с почтальоном и chai-http, настраивающими клиента:
const chai = require('chai')
const chaiHttp = require('chai-http');
chai.use(chaiHttp);
const server = 'http://localhost:1337';
describe('integration test', function(){
it('login', function(done) {
agent = chai.request.agent(server);
agent
.post('/auth/local')
.set('content-type', 'application/x-www-form-urlencoded; application/json; charset=utf-8')
.send({
'identifier':'juser',
'password':'password',
'submit':'login'
})
.type('form')
.end((err,res,body) => {
console.log('/service/get status',res.status);
expect(res).to.have.status(200);
if (err) {
console.log('login error',err);
return done(err);
}
agent
.get('/loginstate')
.set('content-type','application/json; charset=utf-8')
.end((err,res,body) => {
console.log('/service/get status',res.status);
console.log('/loginstate body',res.body);
expect(res).to.have.status(200);
if (err) {
console.log('/loginstate error',err);
return done(err);
}
done();
});
});
});
Я предполагаю, что альтернативный вопрос - как я могу использовать chai-http, чтобы подписаться на событие модели парусов?
Есть ли хорошие примеры тестирования приложений паруса от nodejs, которые демонстрируют получение, публикации, обработку событий и т. Д.?