| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -3,7 +3,8 @@ import TemplateTreatmentModel from '../models/treatment_template';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				import TemplateMeasurementModel from '../models/measurement_template';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				import TestHelper from "../test/helper";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// TODO: remove DELETE methods, only updates possible
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// TODO: convert name to id, criteria for new name, criteria for new version, criteria for prefix
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				describe('/template', () => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  let server;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  before(done => TestHelper.before(done));
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -26,6 +27,8 @@ describe('/template', () => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            should(treatment).have.only.keys('_id', 'name', 'parameters');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            should(treatment).have.property('_id').be.type('string');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            should(treatment).have.property('name').be.type('string');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            should(treatment).have.property('version').be.type('number');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            should(treatment).have.property('number_prefix').be.type('string');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            should(treatment.parameters).matchEach(number => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              should(number).have.only.keys('name', 'range');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              should(number).have.property('name').be.type('string');
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -52,28 +55,28 @@ describe('/template', () => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    describe('GET /template/treatment/{name}', () => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    describe('GET /template/treatment/{id}', () => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('returns the right treatment template', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'get',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/heat%20treatment',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/200000000000000000000001',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          auth: {basic: 'janedoe'},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          httpStatus: 200,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          res: {_id: '200000000000000000000001', name: 'heat treatment', parameters: [{name: 'material', range: {values: ['copper', 'hot air']}}, {name: 'weeks', range: {min: 1, max: 10}}]}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          res: {_id: '200000000000000000000001', name: 'heat treatment', version: 1, number_prefix: 'A', parameters: [{name: 'material', range: {values: ['copper', 'hot air']}}, {name: 'weeks', range: {min: 1, max: 10}}]}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('rejects an API key', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'get',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/heat%20treatment',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/200000000000000000000001',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          auth: {key: 'janedoe'},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          httpStatus: 401
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('rejects an unknown name', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('rejects an unknown id', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'get',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/xxx',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/000000000000000000000001',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          auth: {basic: 'janedoe'},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          httpStatus: 404
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        });
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -81,7 +84,7 @@ describe('/template', () => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('rejects unauthorized requests', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'get',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/heat%20treatment',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/200000000000000000000001',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          httpStatus: 401
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -91,38 +94,50 @@ describe('/template', () => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('returns the right treatment template', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'put',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/heat%20treatment',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/200000000000000000000001',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          auth: {basic: 'admin'},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          httpStatus: 200,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          req: {},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          res: {_id: '200000000000000000000001', name: 'heat treatment', parameters: [{name: 'material', range: {values: ['copper', 'hot air']}}, {name: 'weeks', range: {min: 1, max: 10}}]}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          res: {_id: '200000000000000000000001', name: 'heat treatment', version: 1, number_prefix: 'A', parameters: [{name: 'material', range: {values: ['copper', 'hot air']}}, {name: 'weeks', range: {min: 1, max: 10}}]}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('keeps unchanged properties', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'put',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/heat%20treatment',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/200000000000000000000001',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          auth: {basic: 'admin'},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          httpStatus: 200,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          req: {name: 'heat treatment', parameters: [{name: 'material', range: {values: ['copper', 'hot air']}}, {name: 'weeks', range: {min: 1, max: 10}}]},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          res: {_id: '200000000000000000000001', name: 'heat treatment', parameters: [{name: 'material', range: {values: ['copper', 'hot air']}}, {name: 'weeks', range: {min: 1, max: 10}}]}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          res: {_id: '200000000000000000000001', name: 'heat treatment', version: 1, number_prefix: 'A', parameters: [{name: 'material', range: {values: ['copper', 'hot air']}}, {name: 'weeks', range: {min: 1, max: 10}}]}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('keeps only one unchanged property', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'put',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/200000000000000000000001',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          auth: {basic: 'admin'},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          httpStatus: 200,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          req: {name: 'heat treatment'},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          res: {_id: '200000000000000000000001', name: 'heat treatment', version: 1, number_prefix: 'A', parameters: [{name: 'material', range: {values: ['copper', 'hot air']}}, {name: 'weeks', range: {min: 1, max: 10}}]}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('changes the given properties', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'put',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/heat%20treatment',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/200000000000000000000001',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          auth: {basic: 'admin'},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          httpStatus: 200,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          req: {name: 'heat aging', parameters: [{name: 'time', range: {min: 1}}]}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        }).end((err, res) => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if (err) return done(err);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            should(res.body).be.eql({_id: '200000000000000000000001', name: 'heat aging', parameters: [{name: 'time', range: {min: 1}}]});
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            should(res.body).be.eql({_id: '200000000000000000000001', name: 'heat aging', version: 2, number_prefix: 'A', parameters: [{name: 'time', range: {min: 1}}]});
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            TemplateTreatmentModel.find({name: 'heat aging'}).lean().exec((err, data:any) => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              if (err) return done(err);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              should(data).have.lengthOf(1);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              should(data[0]).have.only.keys('_id', 'name', 'parameters', '__v');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              should(data[0]).have.only.keys('_id', 'name', 'version', 'number_prefix', 'parameters', '__v');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              should(data[0]).have.property('name', 'heat aging');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              should(data[0]).have.property('version', 2);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              should(data[0]).have.property('number_prefix', 'A');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              should(data[0]).have.property('parameters').have.lengthOf(1);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              should(data[0].parameters[0]).have.property('name', 'time');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              should(data[0].parameters[0]).have.property('range');
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -131,50 +146,122 @@ describe('/template', () => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('allows changing only one property');  // TODO: adapt PUT to other PUTs and do POST, everything for measurement too
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('supports values ranges', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'put',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/heat%20treatment',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/200000000000000000000001',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          auth: {basic: 'admin'},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          httpStatus: 200,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          req: {parameters: [{name: 'time', range: {values: [1, 2, 5]}}]},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          res: {_id: '200000000000000000000001', name: 'heat treatment', parameters: [{name: 'time', range: {values: [1, 2, 5]}}]}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          res: {_id: '200000000000000000000001', name: 'heat treatment', version: 2, number_prefix: 'A', parameters: [{name: 'time', range: {values: [1, 2, 5]}}]}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('supports min max ranges', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'put',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/heat%20treatment',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/200000000000000000000001',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          auth: {basic: 'admin'},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          httpStatus: 200,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          req: {parameters: [{name: 'time', range: {min: 1, max: 11}}]},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          res: {_id: '200000000000000000000001', name: 'heat treatment', parameters: [{name: 'time', range: {min: 1, max: 11}}]}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          res: {_id: '200000000000000000000001', name: 'heat treatment', version: 2, number_prefix: 'A', parameters: [{name: 'time', range: {min: 1, max: 11}}]}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('supports empty ranges', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'put',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/heat%20treatment',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/200000000000000000000001',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          auth: {basic: 'admin'},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          httpStatus: 200,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          req: {parameters: [{name: 'time', range: {}}]},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          res: {_id: '200000000000000000000001', name: 'heat treatment', parameters: [{name: 'time', range: {}}]}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          res: {_id: '200000000000000000000001', name: 'heat treatment', version: 2, number_prefix: 'A', parameters: [{name: 'time', range: {}}]}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('adds a new template for an unknown name', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('rejects an invalid id', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'put',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/heat%20aging',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/2000000000h0000000000001',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          auth: {basic: 'admin'},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          httpStatus: 404,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          req: {name: 'heat aging', parameters: [{name: 'time', range: {min: 1}}]}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('rejects an unknown id', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'put',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/000000000000000000000001',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          auth: {basic: 'admin'},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          httpStatus: 404,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          req: {name: 'heat aging', parameters: [{name: 'time', range: {min: 1}}]}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('rejects already existing number prefixes', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'put',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/200000000000000000000001',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          auth: {basic: 'admin'},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          httpStatus: 400,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          req: {number_prefix: 'B', parameters: [{name: 'time', range: {min: 1}}]},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          res: {status: 'Number prefix already taken'}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('rejects an API key', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'put',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/200000000000000000000001',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          auth: {key: 'admin'},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          httpStatus: 401,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          req: {}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('rejects requests from a write user', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'put',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/200000000000000000000001',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          auth: {basic: 'janedoe'},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          httpStatus: 403,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          req: {}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('rejects unauthorized requests', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'put',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/200000000000000000000001',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          httpStatus: 401,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          req: {}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    describe('POST /template/treatment/new', () => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('returns the right treatment template', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'put',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/200000000000000000000001',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          auth: {basic: 'admin'},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          httpStatus: 200,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          req: {},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          res: {_id: '200000000000000000000001', name: 'heat treatment', version: 1, number_prefix: 'A', parameters: [{name: 'material', range: {values: ['copper', 'hot air']}}, {name: 'weeks', range: {min: 1, max: 10}}]}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('stores the template', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'put',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/200000000000000000000001',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          auth: {basic: 'admin'},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          httpStatus: 200,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          req: {name: 'heat aging', parameters: [{name: 'time', range: {min: 1}}]}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        }).end(err => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        }).end((err, res) => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          if (err) return done(err);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          should(res.body).be.eql({_id: '200000000000000000000001', name: 'heat aging', version: 2, number_prefix: 'A', parameters: [{name: 'time', range: {min: 1}}]});
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          TemplateTreatmentModel.find({name: 'heat aging'}).lean().exec((err, data:any) => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if (err) return done(err);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            should(data).have.lengthOf(1);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            should(data[0]).have.only.keys('_id', 'name', 'parameters', '__v');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            should(data[0]).have.only.keys('_id', 'name', 'version', 'number_prefix', 'parameters', '__v');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            should(data[0]).have.property('name', 'heat aging');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            should(data[0]).have.property('version', 2);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            should(data[0]).have.property('number_prefix', 'A');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            should(data[0]).have.property('parameters').have.lengthOf(1);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            should(data[0].parameters[0]).have.property('name', 'time');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            should(data[0].parameters[0]).have.property('range');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            should(data[0].parameters[0].range).have.property('min', 1);
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -182,7 +269,7 @@ describe('/template', () => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('rejects a missing name for a new name', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('rejects a missing name', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'put',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/heat%20aging',
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -192,7 +279,7 @@ describe('/template', () => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          res: {status: 'Invalid body format', details: '"name" is required'}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('rejects missing parameters for a new name', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('rejects missing parameters', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'put',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/heat%20aging',
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -202,7 +289,7 @@ describe('/template', () => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          res: {status: 'Invalid body format', details: '"parameters" is required'}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('rejects a missing parameter name for a new name', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('rejects a missing parameter name', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'put',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/heat%20aging',
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -212,7 +299,7 @@ describe('/template', () => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          res: {status: 'Invalid body format', details: '"parameters[0].name" is required'}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('rejects a missing parameter range for a new name', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('rejects a missing parameter range', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'put',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/heat%20aging',
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -222,7 +309,7 @@ describe('/template', () => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          res: {status: 'Invalid body format', details: '"parameters[0].range" is required'}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('rejects a an invalid parameter range property for a new name', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('rejects a an invalid parameter range property', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'put',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/heat%20aging',
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -232,16 +319,6 @@ describe('/template', () => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          res: {status: 'Invalid body format', details: '"parameters[0].range.xx" is not allowed'}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('rejects already existing names', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'put',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/heat%20treatment',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          auth: {basic: 'admin'},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          httpStatus: 400,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          req: {name: 'heat treatment 2', parameters: [{name: 'time', range: {min: 1}}]},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          res: {status: 'Template name already taken'}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('rejects wrong properties', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'put',
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -252,83 +329,6 @@ describe('/template', () => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          res: {status: 'Invalid body format', details: '"name" is required'}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('rejects an API key', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'put',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/heat%20treatment',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          auth: {key: 'admin'},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          httpStatus: 401,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          req: {}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('rejects requests from a write user', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'put',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/heat%20treatment',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          auth: {basic: 'janedoe'},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          httpStatus: 403,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          req: {}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('rejects unauthorized requests', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'put',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/heat%20treatment',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          httpStatus: 401,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          req: {}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    describe('DELETE /template/treatment/{name}', () => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('deletes the template', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'delete',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/heat%20treatment',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          auth: {basic: 'admin'},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          httpStatus: 200
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        }).end((err, res) => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          if (err) return done(err);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          should(res.body).be.eql({status: 'OK'});
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          TemplateTreatmentModel.find({name: 'heat treatment'}).lean().exec((err, data:any) => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if (err) return done(err);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            should(data).have.lengthOf(0);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            done();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('rejects deleting a template still in use');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('rejects an API key', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'delete',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/heat%20treatment',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          auth: {key: 'admin'},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          httpStatus: 401
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('rejects requests from a write user', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'delete',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/heat%20treatment',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          auth: {basic: 'janedoe'},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          httpStatus: 403
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        })
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('returns 404 for an unknown name', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'delete',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/xxx',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          auth: {basic: 'admin'},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          httpStatus: 404
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        })
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('rejects unauthorized requests', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'delete',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/treatment/heat%20treatment',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          httpStatus: 401
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        })
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -603,56 +603,5 @@ describe('/template', () => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    describe('DELETE /template/measurement/{name}', () => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('deletes the template', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'delete',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/measurement/spectrum',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          auth: {basic: 'admin'},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          httpStatus: 200
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        }).end((err, res) => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          if (err) return done(err);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          should(res.body).be.eql({status: 'OK'});
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          TemplateMeasurementModel.find({name: 'spectrum'}).lean().exec((err, data:any) => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if (err) return done(err);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            should(data).have.lengthOf(0);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            done();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('rejects deleting a template still in use');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('rejects an API key', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'delete',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/measurement/spectrum',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          auth: {key: 'admin'},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          httpStatus: 401
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('rejects requests from a write user', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'delete',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/measurement/spectrum',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          auth: {basic: 'janedoe'},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          httpStatus: 403
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        })
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('returns 404 for an unknown name', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'delete',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/measurement/xxx',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          auth: {basic: 'admin'},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          httpStatus: 404
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        })
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      it('rejects unauthorized requests', done => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        TestHelper.request(server, done, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          method: 'delete',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          url: '/template/measurement/spectrum',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          httpStatus: 401
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        })
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				});
 |