mirror of
https://github.com/Unleash/unleash.git
synced 2025-02-09 00:18:00 +01:00
#8 mocked api respons
This commit is contained in:
parent
c09ad0b8a9
commit
290a124aef
@ -1,5 +1,41 @@
|
||||
module.exports = function (app) {
|
||||
app.get('/features', function (req, res) {
|
||||
res.send('some nice json features here!');
|
||||
var featuresMock = require('./featuresMock');
|
||||
|
||||
function getFeature(name) {
|
||||
var featureFound;
|
||||
featuresMock.forEach(function (feature) {
|
||||
if (feature.name === name) {
|
||||
featureFound = feature;
|
||||
}
|
||||
});
|
||||
};
|
||||
return featureFound;
|
||||
}
|
||||
|
||||
module.exports = function (app) {
|
||||
|
||||
app.get('/features', function (req, res) {
|
||||
res.json(featuresMock);
|
||||
});
|
||||
|
||||
app.get('/features/:id', function (req, res) {
|
||||
var feature = getFeature(req.params.id);
|
||||
|
||||
if (feature) {
|
||||
res.json(feature);
|
||||
} else {
|
||||
res.json(404, {error: 'Could not find feature'});
|
||||
}
|
||||
});
|
||||
|
||||
app.post('/features', function (req, res) {
|
||||
var newFeature = req.body;
|
||||
|
||||
if (!getFeature(newFeature.name)) {
|
||||
featuresMock.push(newFeature);
|
||||
res.status(201).end();
|
||||
} else {
|
||||
res.status(500).end();
|
||||
}
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
|
23
unleash-server/lib/featuresMock.js
Normal file
23
unleash-server/lib/featuresMock.js
Normal file
@ -0,0 +1,23 @@
|
||||
module.exports = [
|
||||
{
|
||||
"name": "featureX",
|
||||
"status": "on",
|
||||
"strategy": "default"
|
||||
},
|
||||
{
|
||||
"name": "featureY",
|
||||
"status": "off",
|
||||
"strategy": "baz",
|
||||
"parameters": {
|
||||
"foo": "bar"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "featureZ",
|
||||
"status": "on",
|
||||
"strategy": "baz",
|
||||
"parameters": {
|
||||
"foo": "rab"
|
||||
}
|
||||
}
|
||||
];
|
@ -1,12 +0,0 @@
|
||||
var assert = require('assert');
|
||||
|
||||
describe('The api', function () {
|
||||
beforeEach(function () {
|
||||
//
|
||||
});
|
||||
|
||||
it('returns all toggles', function (done) {
|
||||
done();
|
||||
assert(true);
|
||||
});
|
||||
});
|
29
unleash-server/test/apiSpec.js
Normal file
29
unleash-server/test/apiSpec.js
Normal file
@ -0,0 +1,29 @@
|
||||
var request = require('supertest');
|
||||
|
||||
request = request('http://localhost:4242');
|
||||
|
||||
describe('The api', function () {
|
||||
var server;
|
||||
|
||||
before(function () {
|
||||
server = require('../server');
|
||||
});
|
||||
|
||||
after(function () {
|
||||
server.server.close();
|
||||
});
|
||||
|
||||
it('returns three mocked feature toggles', function (done) {
|
||||
request
|
||||
.get('/features')
|
||||
.expect(200, done);
|
||||
});
|
||||
|
||||
it('creates new feature toggle', function (done) {
|
||||
request
|
||||
.post('/features')
|
||||
.send({name: 'featureAss', 'status': 'off'})
|
||||
.set('Content-Type', 'application/json')
|
||||
.expect(201, done);
|
||||
});
|
||||
});
|
Loading…
Reference in New Issue
Block a user