garage-wall
v0.2.0
Published
 [](https://travis-ci.org/snrn-Pontus/garage-wall) [ and after that you can register mock callbacks to the different HTTP-methods.
onGet(), onPost(), onPut() and onDelete() each accepts
routeParams
object where the keys are url-placeholders and the values are RegExp as strings.
const routeParams = { id: '\\d+' };urlPattern
url string with bracketed placeholders for values.
const pattern = 'url/{id}/';this is then chained with onReply() which takes a callback
callback
A function that will be called when a request matches its pattern. The function will be called with a regular AxiosRequestConfig, the variables matched in the url keyed to the placeholder name and finally the url pattern.
interface iMockResponseCallback {
(
config: AxiosRequestConfig,
pathParams: { [param: string]: string },
urlPattern: string
): iExtendedResponse;
}It should return an extended version of a regular axios response, containing the placeholder to value map and the pattern.
interface iExtendedResponse extends AxiosResponse {
routeParams: iRouteParams;
urlPattern: string;
}example
import react from 'react';
import { GarageWall } from 'garage-wall';
const mock = new MockBuilder()
.onGet({ '{dataId}': '\\d+', '{word}': '\\w+' }, `/data/{dataId}/{word}`)
.onReply((config, routeParams, urlPattern) => {
/* do whatevery you want */
return {
routeParams,
urlPattern,
data: { boatsman: 'tjorven' },
status: 200,
statusText: 'ok',
headers: {},
config: config,
request: null,
};
});
const App = () => {
return (
<div>
<GarageWall mock={mock} />
</div>
);
};
ReactDOM.render(<App />, document.getElementById('root'));