Skip to content

Instantly share code, notes, and snippets.

@thebergamo
Created July 2, 2014 17:29
Show Gist options
  • Save thebergamo/5ae49e68791dc8549cce to your computer and use it in GitHub Desktop.
Save thebergamo/5ae49e68791dc8549cce to your computer and use it in GitHub Desktop.
test_user.js
var request = require('request');
var assert = require('assert');
describe('API / USER Test', function(){
//test get list
describe('GET /api/users', function(){
it('code 200 && array', function(done){
request('http://localhost:8080/api/users', function(err, res){
assert.equal(res.statusCode, 200);
assert.ok(typeof JSON.parse(res.body) === "object");
done();
});
});
});
});
@alanhoff
Copy link

alanhoff commented Jul 2, 2014

  1. Testes sempre devem ser feitos em um ambiente zerado, sem interferências externas
  2. Os testes são mais fáceis se seguir a ordem do CRUD.
  3. 2 espaços, meh.
describe('/users endpoint', function () {

    describe('POST /api/users', function () {

        it('Devo conseguir criar com sucesso', function (done) {
            var user = {
                name : 'alan',
                surname : 'hoffmeister'
            };

            request.post('http://localhost:8080/api/users', {
                json : true,
                data : user
            }, function (err, res) {
                assert.equal(res.statusCode, 200);
            });
        });

        it('Usuários sem nome não podem passar', function (done) {
            var user = {
                surname : 'hoffmeister'
            };

            request.post('http://localhost:8080/api/users', {
                json : true,
                data : user
            }, function (err, res, body) {
                assert.equal(res.statusCode, 400);
                var json = JSON.parse(body);
                asset.ok(json.error === true);
                asset.ok(json.message === 'Você precisa inserir um nome.');
                done();
            });
        });

    });

    describe('GET /api/users', function () {

        it('Devo conseguir recupear uma lista de usuários', function (done) {
            var user = {
                name : 'alan',
                surname : 'hoffmeister'
            };

            request.get('http://localhost:8080/api/users', function (err, res, body) {
                assert.equal(res.statusCode, 200);

                var json = JSON.parse(body);
                assert.ok(Array.isArray(json));

                // Precisa ter o usuário que criamos acima
                assert.equal(json.length, 1);
                done();
            });
        });

    });

    // Agora falta PUT e DEL..


});

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment