1

This is my Js code

(function () {
angular.module('app',[])
    .factory('code', function ($http, svc, $q) {
     function getCodeByID(id) {
            return $http.get(svc.get('my-application') + id)
                .then(function (res) {
                    return res;
                });
        }
    })
})();

This is my Spec.js file

 describe('MyController', function() {
var data, svc, code;
// Set up the module
//beforeEach(module('app'));
beforeEach(angular.mock.module('app'));
beforeEach(inject(function(_data_) {
    data = _data_;
}));
beforeEach(inject(function(_svc_) {
    svc = _svc_;
}));
beforeEach(inject(function(_code_) {
    code = _code_;
}));
it('Should exist', function() {
    expect(code).toBeDefined();
});});

Getting this error:

Error: [$injector:unpr] Unknown provider: dataProvider <- data
    https://errors.angularjs.org/1.7.4/$injector/unpr?p0=dataProvider%20%3C-%20data
        at node_modules/angular/angular.js:138:12
        at node_modules/angular/angular.js:4905:19
        at Object.getService [as get] (node_modules/angular/angular.js:5065:32)
        at node_modules/angular/angular.js:4910:45
        at getService (node_modules/angular/angular.js:5065:32)
        at injectionArgs (node_modules/angular/angular.js:5090:58)
        at Object.invoke (node_modules/angular/angular.js:5114:18)
        at UserContext.WorkFn (node_modules/angular-mocks/angular-mocks.js:3439:20)
    Error: Declaration Location
        at window.inject.angular.mock.inject (node_modules/angular-mocks/angular-mocks.js:3402:25)
        at Suite.<anonymous> (src/app/epcCodes/epc.spec.js:9:16)
        at src/app/epcCodes/epc.spec.js:2:1

I don't know why I am getting this error, I have added all the dependency injection that's needed for my project. Can you provide me the solution for this?

Deva Anand
  • 11
  • 1

3 Answers3

0
  1. You only need one of those beforeEach blocks where you are injecting your services -- though this has nothing to do with your issue.

  2. This one does have to do with your issue -- you are "telling" your test to inject a data component/service/factory when one apparently does not exist in your code. What are you expecting data to be?

Pytth
  • 4,008
  • 24
  • 29
  • Here, I am using the dependency svc to inject in my code. This function also included in .js file. – Deva Anand Sep 23 '18 at 21:16
  • ` function getCodes(query) { var qry = ccUtils.buildQuery(query); return $http.get(svc.get('url') .then(function (response) { var resObj = {}; resObj.data = response.data.content; resObj.pageData = { totalPages: response.data.totalPages, totalElements: response.data.totalElements }; return resObj; }) } ` – Deva Anand Sep 23 '18 at 21:18
  • Can anyone help me in this issue – Deva Anand Sep 27 '18 at 20:18
  • If you want people to help you, you really should post ALL of the relevant code in your original post. If you want help, make it as easy as possible for people to help you. – Pytth Sep 27 '18 at 20:39
  • I have added my index.js and svc.js file in this post – Deva Anand Oct 01 '18 at 01:07
  • Can anyone help me in fixing this issue? – Deva Anand Oct 18 '18 at 17:27
0
angular.module('Svc', [])
.factory('Svc', function (Data, $injector, $http) {
    var ConfigData = Data;
    var Svc = {};
    Svc.get = function (key) {
        return ConfigData[key];
    };
    Svc.loadResourcePaths = function (resources) {
        resources.forEach(function (resource) {
            $http.get(Svc.get('security-api') + 'resources?name=' + resource)
                .then(function (response) {
                    if (response.data.totalElements === 1) {
                        ConfigData[resource] = response.data.content[0].href;
                    } else {
                    }
                })
        })
    };
    return Svc;
});
Deva Anand
  • 11
  • 1
0
(function () {
angular
    .module('app', [
        'ConfigSvc',
        'AuthUtils',
        'ngCsv'
    ])

    .constant('APPNAME', 'ui')
    .constant('APPLABEL', 'app_label')
    .constant('APPPREFIX', 'App_name')

    .config(function ($mdThemingProvider) {
        $mdThemingProvider.theme('default')
            .primaryPalette('grey', {'default': '900'})
            .accentPalette('blue', {'default': '400'})
        ;
    })
    .config(function routesConfig($stateProvider, $urlRouterProvider, $locationProvider, $mdAriaProvider) {
        $locationProvider.html5Mode(true).hashPrefix('!');
        $urlRouterProvider.otherwise('/');
        $stateProvider
            .state('home', {
                url: '/',
                template: '<app></app>',
                data: {
                    label: 'Home',
                    icon: 'home',
                    menu: true
                }
            });
    });


angular.element(document).ready(function () {

    var initInjector = angular.injector(['ng']);
    var $http = initInjector.get('$http');

    $http.get('appConfig.json')
        .then(function (response) {
            angular.module('app').constant('Data', response.data);

            return $http.get('appFeatures.json')
        })
        .then(function (response) {

            angular.module('app').constant('ccAppFeatures', response.data);
        })
        .finally(function () {

            angular.bootstrap(document, ['app']);
        });
});})();
Deva Anand
  • 11
  • 1