mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +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