protractor-fake-backend
v1.2.0
Published
Mock the http calls of your angular application when testing it with protractor
Downloads
10
Readme
protractor-fake-backend
A NodeJS module to be used alongside Protractor
Installation
npm install --save-dev protractor-fake-backend
Configuration
In your protractor configuration file you need to do the following:
exports.config = {
// other stuff
onPrepare: function() {
// other stuff
require('protractor-fake-backend').config = {
mocksDir: 'path/to/mocks/directory', // default 'mocks'
defaultMocks: ['some/mock', 'another/**', {request:{}, response:{}}] // default []
};
}
}
mocksDir
should receive the relative path of the directory that contains the mock files.defaultMocks
must be an array. The array can contain mock objects and file names (strings). These are included every time (unlessexcludeDefaultMocks = true
). You can use patterns for file names
Mock files
Mock files must be written in javascript and must export a mock object or an array of mock objects
module.exports = {
request: {
path: '/the/path',
method: 'GET'
},
response: {
data: 'bla'
}
}
or
module.exports = [
{
// first mock
}, {
// second mock
}
]
Reference mock object
{
request: {
path: '/must/start/with/a/slash',
method: 'POST',
data: 'request body',
headers: {
first: 1,
second: 'bla'
},
params: {
first: 1,
second: 'woo'
}
},
response: {
status: 200,
data: 'bla',
headers: {
first: 1,
second: 'two'
}
}
}
Usage
var fakeBackend = require('protractor-fake-backend');
var page = require('your/page/object');
describe('your test', function() {
beforeAll(function() {
fakeBackend(['first/file', 'second/file']);
page.get();
});
it('check the last request', function() {
var expectation = {
path: '/the/path',
method: 'POST',
body: 'request body'
};
fakeBackend.clearRequests();
page.someButton.click();
fakeBackend.getLastRequest().then(function(request) {
expect(request).toEqual(expectation);
});
});
});
API
fakeBackend(mocks, excludeDefaultMocks)
Adds the mock module on protractor. Needs to be called in each spec.
mocks
if not passed, only default mocks will be included.
Can be:
- A string representing a file name or a pattern. E.g.
'some/file'
or'file/**'
- An array that can contain a combination of file names(or patterns) and mock objects
excludeDefaultMocks
by default is false
. As the name says, if you pass true
then the default mocks declared in config won't be added
fakeBackend.teardown()
Removes the mock module from protractor
fakeBackend.getRequests()
Returns an array containing all intercepted requests
fakeBackend.getLastRequest()
Returns the last intercepted request
fakeBackend.clearRequests()
Deletes all the intercepted requests
fakeBackend.addMock(mock)
Adds one or more mocks. The mock
param can be an Object or an Array of Objects
fakeBackend.removeMocks()
Removes all the mocks from the module