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:
exportsconfig = // other stuff { // other stuff 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
moduleexports = request: path: '/the/path' method: 'GET' response: data: 'bla'
or
moduleexports = // 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 = ;var page = ; ;
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