serviceSpec.js 5.5 KB
describe('Servicios de abm vehículo', function() {

    var servicio;
    var httpBackend;

    beforeEach(function() {
        module('focaAbmVehiculo');
        inject(module(function($provide) {
            $provide.value('API_ENDPOINT', {
                URL: 'localhost'
            });
        }));
        inject(function($httpBackend, _focaAbmVehiculoService_) {
            httpBackend = $httpBackend;
            servicio = _focaAbmVehiculoService_;
        });
    });

    describe('Servicio focaAbmVehiculoService', function() {

        it('Existe el servicio focaAbmVehiculoService', function() {
            //assert
            expect(typeof servicio).toEqual('object');
        });

        it('función getVehiculos ejecuta $http.get correctamente', function() {
            //arrange
            var returnFake = { data: 'test' };
            var result;
            httpBackend.expectGET('localhost/vehiculo').respond(returnFake);

            //act
            servicio.getVehiculos().then(function(data) {
                result = data.data;
            });
            httpBackend.flush();

            //assert
            expect(result).toEqual(returnFake);
        });

        it('la función getVehiculo llama $http.get() correctamente', function() {
            //arrange
            var returnFake = { data: 'test' };
            var parametroPrueba = 1;
            var result;
            httpBackend.expectGET('localhost/vehiculo/' + parametroPrueba).respond(returnFake);

            //act
            servicio.getVehiculo(parametroPrueba).then(function(data) {
                result = data.data;
            });
            httpBackend.flush();

            //assert
            expect(result).toEqual(returnFake);
        });

        it('la función getTransportistas llama $http.get() correctamente', function() {
            //arrange
            var returnFake = { data: 'test' };
            var result;
            httpBackend.expectGET('localhost/transportista').respond(returnFake);

            //act
            servicio.getTransportistas().then(function(data) {
                result = data.data;
            });
            httpBackend.flush();

            //assert
            expect(result).toEqual(returnFake);
        });

        it('Función guardarVehiculo llama $http.post() correctamente', function() {
            //arrange
            var returnFake = { data: 'test' };
            var bodyFake = { vehiculo: 1 };
            var result;
            httpBackend
                .expectPOST('localhost/vehiculo', JSON.stringify(bodyFake))
                .respond(returnFake);

            //act
            servicio.guardarVehiculo(bodyFake.vehiculo).then(function(data) {
                result = data.data;
            });
            httpBackend.flush();

            //assert
            expect(result).toEqual(returnFake);
        });

        it('Función delete vehiculo ejecuta $http.delete correctamente', function() {
            //arrange
            var returnFake = { data: 'test' };
            var paramFake = 1;
            var result;
            httpBackend.expectDELETE('localhost/vehiculo/' + paramFake).respond(returnFake);

            //act
            servicio.deleteVehiculo(paramFake).then(function(data) {
                result = data.data;
            });
            httpBackend.flush();

            //assert
            expect(result).toEqual(returnFake);
        });

        it('Función getCisternas devuelve una promesa', function() {
            //arrange
            var promesa = Promise.all([true]);
            
            //act
            var espera = servicio.getCisternas();
            espera = espera.toString();
            promesa = promesa.toString();

            //assert
            expect(espera).toEqual(promesa);
        });

        it('Función guardarCisternas llama a post /cisterna', function() {
            //arrange
            var returnFake = { data: 'test' };
            var result;
            var bodyFake = { cisternas: 1 };
            httpBackend.expectPOST('localhost/cisterna', JSON.stringify(bodyFake))
                .respond(returnFake);

            //act
            servicio.guardarCisternas(bodyFake.cisternas).then(function(data) {
                result = data.data;
            });
            httpBackend.flush();

            //assert
            expect(result).toEqual(returnFake);
        });

        it('Funcion getVehiculosPorTransportista  llama ruta correcta', function() {
            //arrange
            var returnFake = { data: 'test' };
            var paramFake = 1;
            var result;
            httpBackend.expectGET('localhost/vehiculo/transportista/' + paramFake)
                .respond(returnFake);

            //act
            servicio.getVehiculosPorTransportista(paramFake).then(function(data) {
                result = data.data;
            });
            httpBackend.flush();

            //assert
            expect(result).toEqual(returnFake);
        });

        it('Funcion getTransportistaPorId  llama ruta correcta', function() {
            //arrange
            var returnFake = { data: 'test' };
            var paramFake = 1;
            var result;
            httpBackend.expectGET('localhost/transportista/' + paramFake)
                .respond(returnFake);

            //act
            servicio.getTransportistaPorId(paramFake).then(function(data) {
                result = data.data;
            });
            httpBackend.flush();

            //assert
            expect(result).toEqual(returnFake);
        });
    });
});