Adicionando specs, factories e coverage

Adicionando specs, factories e coverage visando garantir a qualidade do código existente e de novas features.