AngularJS ngMockE2E Async

CircleCI codecov

Tested for:

npm npm npm npm

An abstraction on top of ngMockE2E to support async calls using promises.

If you need to make an async operation ( such as working with WebSQL / IndexedDB ) the orignial ngMockE2E will fall through and you will never have the chance to respond with your own response.

ngMockE2EAsync decorates the $httpBackend by utilizing promises. Responses can now be in a form of a promise where the $httpBackend will original function will not be called until your promise has been resolved. Once resolved the original $httpBackend APIs will be called and things will flow their natural ways back to the caller.


jsFiddle Plunker



npm install angular-mocks-async


<script src="angular.js"></script>
<script src="angular-mocks.js"></script>
<script src="//"></script>


The decorator exposes a new API


Which is equivalent to the $httpBackend.when() API but expects a promise in the .respond() function.

Here is an example for an HTTP GET

(function( ng ) {

    var app = ng.module('myApp', ['ngMockE2E', 'ngMockE2EAsync']) [ '$httpBackend', '$q', function( $httpBackend, $q ) {

                new RegExp( '$' )
        ).respond( function( method, url, data, config ) {

            var re = /.*\/user\/(\w+)/;
            var userId = parseInt(url.replace(re, '$1'), 10);

            var response = $q.defer();

            setTimeout( function() {
                var data = {
                userId: userId
                response.resolve( [ 200, "this is a mocked async GET response", "123" ] );
            }, 1000 );

            return response.promise;


            url: "",
            method: 'GET'
        }).then( function( response ) {
            alert( );

You may use this API the same way for POST, PUT, UPDATE, and DELETE.


The code adds a custom decorator function to the existing angular mock namespace which already hold similar decorator functions - angular.mock.$HttpBackendAsyncDecorator.

Developing & Testing

gulpfile.js has the following tasks:


Please be sure to run these tests when making changes



Angular Mocks Async

AngularJS ngMockE2E Async

Angular Mocks Async Info

⭐ Stars 12
🔗 Source Code
🕒 Last Update 4 years ago
🕒 Created 6 years ago
🐞 Open Issues 7
➗ Star-Issue Ratio 2
😎 Author amoldavsky