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) {
|
var featuresMock = require('./featuresMock');
|
||||||
app.get('/features', function (req, res) {
|
|
||||||
res.send('some nice json features here!');
|
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