Dileep
Dileep

Reputation: 11

How to fix the below test case when i am migrating from angularjs 1.6.9 to 1.7.8

i am trying to migrate my angularjs application from v1.6.9 to v1.7.8. my test case are failing with

angular-mock.js($rootScope)

ERROR: No response Defined! in angularjs/angular-mocks.js(1607)

ERROR:$rootScope:INPROG

since i am new to jasmine karma testing i have tried with $rootscope.flush(). but i am not able to resolve it .

this is my first unit testing with Angularjs and jasmine karma, not able to find the exact reason and i have gone through the release notes of the other releases as well.

with $rootScope i found that they have modified its scope to the function not generic.

Below is my spec.js: I am getting error with $rootscope,flush(). could some please help me out to resolve this issue as it is required.

       $httpBackend.when('GET','/application/api/prefernce-definition')
          .respond(successResponsePrefernces);
        $httpBackend.when('POST','/application/api/setprefernce-definition')
          .respond(201);
        $httpBackend.when('POST','/application/api/v1/set-prefernces');
        $httpBackend.when('POST','/application/api/v2/balances')
          .respond(accountApiResponse);

        //assertion for expecting proper get request for preferences-definition
        $httpBackend.expectGET(,'/application/api/v1/prefernce-prefernces');

        //fetch and set prefernces
        $scope.onclickSetting();
        $rootScope.flush();
        $timeout.flush();

        //now save the settings
        $scope.saveViewSettings();
// getting error in this line after the flush
        $rootScope.flush();
        $timeout.flush();

        var viewMode = $scope.model.viewSettings.viewMode,
           viewModeExpected = successResponsePreferences.preferenceDefinitionList[0];

        expect(viewMode.default).toBe(viewModeExpected.defaultPreferenceValue);
        expect(viewMode.selected).toBe(viewModeExpected.currentUserPreferenceValue);
        expect($scope.$broadcast).toHaveBeenCalledWith("ShowFilter");

        //should update the prefernces in cache
        expect(viewMode.selected).toBe(cacheService.getPreferences().viewMode);
        expect(analyticsService.sendAction).toHaveBeenCalledwith(
          Constant.ACCOUNT_BALANCES.MODULE_NAME,
          Constant.ACCOUNT_BALANCES,VIEW_SETTINGS,
          []
          );
        expect(analyticsService.sendAction).toHaveBeenCalledwith(
          Constant.ACCOUNT_BALANCES.MODULE_NAME,
          Constant.ACCOUNT_BALANCES,VIEW_SETTINGS,
          [Constant.EXTD_MODE, Constant.NO_GROUPING]
          );
        });

Below are the errors:

Error: No response defined! In ../bower_components/angular-mocks/angular-mocks.js(line 1607) $httpBackend@/../bower_components/angular-mocks/angular-mocks.js:1607:63.

Upvotes: 0

Views: 202

Answers (0)

Related Questions