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, которые демонстрируют получение, публикации, обработку событий и т. Д.?

0 ответов

Другие вопросы по тегам