No momento, estou trabalhando para adicionar testes no lado do cliente ao Rede de Desenvolvedores Mozilla (MDN). Estou usando o Estagiário, uma API WebDriver baseada em JavaScript criada pelo meu antigo empregador SitePen. A MDN usa seu próprio serviço de login Persona há anos e, como muitos recursos importantes da MDN exigem login (e subsequente criação de conta), era importante que eu tivesse uma maneira de obter credenciais de teste. Há um serviço que fornece essas credenciais, mas isso exige que eu faça uma solicitação HTTP de dentro de um auxiliar de teste.


Eu geralmente uso o popular request module, disponível no npmmas eu queria evitar dependências externas fora da biblioteca de testes. Sempre ouvi dizer que lidar com solicitações HTTP com a API nativa do Node.js era um pesadelo, mas depois de investigar um pouco, descobri que o que eu precisava era, na verdade, incrivelmente fácil. Aqui está um exemplo reduzido e extremamente simples de como fazer uma solicitação HTTP com o Node.js:



var http = require('http');

function getTestPersonaLoginCredentials(callback) {

    return http.get({
        host: 'personatestuser.org',
        path: '/email'
    }, function(response) {
        // Continuously update stream with data
        var body = '';
        response.on('data', function(d) {
            body += d;
        });
        response.on('end', function() {

            // Data reception is done, do whatever with it!
            var parsed = JSON.parse(body);
            callback({
                email: parsed.email,
                password: parsed.pass
            });
        });
    });

},


A única parte fora do comum é a necessidade de concatenar o fluxo de dados de entrada, mas, fora isso, o processo é realmente muito simples. É claro que o senhor pode adicionar mais verificações para códigos de status de resposta e coisas do gênero, mas aqui está um exemplo bem simples de criação de uma solicitação HTTP com o código nativo do Node.js!

  • Como vencer a síndrome do impostor

    Há dois anos, documentei minha luta contra a Síndrome do Impostor e a resposta foi imensa. Recebi mensagens de apoio e de comiseração de novos desenvolvedores da Web, engenheiros veteranos e até mesmo de pessoas de todos os níveis de experiência em outras profissões. Até me peguei lendo a postagem…

  • Crie um efeito de logotipo brilhante com CSS