Skip to content
This repository has been archived by the owner on Aug 5, 2019. It is now read-only.
/ roadhouse-mock Public archive

A set of factories to create simple mock handlers for CRUD data in Angular.

License

Notifications You must be signed in to change notification settings

vokal/roadhouse-mock

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

roadhouse-mock

A set of factories to create simple mock handlers for CRUD data in Angular.

Basic Example Setup

The most concise way to create mock handlers is like so

// A bunch of boilerplate up here so you are still in control
require( "angular-mocks" );
var rhMock = require( "roadhouse-mock" );
var data = {
    list: [ { key: "value 1" }, { key: "value2" } ],
    otherList: require( "./stuff" )
};

angular.module( "e2e-mocks", [ "ngMockE2E" ] )
.run( [ "$httpBackend", "APIRoot",
    function ( $httpBackend, APIRoot )
    {
        rhMock.setApiRoot( APIRoot );
        rhMock.$httpBackend = $httpBackend;

        // These are the lines where it gets good
        rhMock.create( "list", [ "GET", "POST" ], data.list );
        rhMock.create( "list/:itemId", [ "PUT", "DELETE" ], data.list );
        rhMock.create( "other-list", [ "GET" ], data.otherList );
    } ] );

angular.module( "App" ).requires.push( "e2e-mocks" );

Long-Form Example Setup

create( path, methods, list ) sets up handlers with the methods used below, which you can also use directly, if you like.

//... Just like before the `run` block above ...
.run( [ "$httpBackend", "APIRoot",
    function ( $httpBackend, APIRoot )
    {
        rhMock.setApiRoot( APIRoot );
        // rhMock doesn't need to know $httpBackend when used like this

        // GET a list
        $httpBackend.whenRoute( "GET", APIRoot + "list" )
            .respond( rhMock.createList( data.list ) );

        // POST to a list
        $httpBackend.whenRoute( "POST", APIRoot + "list" )
            .respond( rhMock.createPost( data.list ) );

        // PUT to a list
        $httpBackend.whenRoute( "PUT", APIRoot + "list" )
            .respond( rhMock.createPut( data.list ) );

        // DELETE from a list
        $httpBackend.whenRoute( "DELETE", APIRoot + "list" )
            .respond( rhMock.createDelete( data.list ) );

        // you can still use any typical handlers as well
        $httpBackend.whenRoute( "GET", APIRoot + "/other-list" )
            .respond( function ( method, url, data )
            {
                data = JSON.parse( data );
                if( data.email === userObj.email )
                {
                    return [ 200, data.otherList ];
                }
                return [ 401 ];
            } );
    }
] );
angular.module( "App" ).requires.push( "e2e-mocks" );

About

A set of factories to create simple mock handlers for CRUD data in Angular.

Resources

License

Stars

Watchers

Forks

Packages

No packages published