mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01:00 
			
		
		
		
	Adds a new way of handling usage metrics where we push it directly to the database and performs aggregation on the fly. All metrics are aggregated in to buckets of hours. We will for now store metrics for the 48 hours with the following dimensions: - featureName - projectName - envrionment - yes (the actual count) - no (the actual count)
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { setupApp } from '../../helpers/test-helper';
 | |
| import metricsExample from '../../../examples/client-metrics.json';
 | |
| import dbInit from '../../helpers/database-init';
 | |
| import getLogger from '../../../fixtures/no-logger';
 | |
| 
 | |
| let app;
 | |
| let db;
 | |
| 
 | |
| beforeAll(async () => {
 | |
|     db = await dbInit('metrics_api_client', getLogger);
 | |
|     app = await setupApp(db.stores);
 | |
| });
 | |
| 
 | |
| afterAll(async () => {
 | |
|     await app.destroy();
 | |
|     await db.destroy();
 | |
| });
 | |
| 
 | |
| test('should be possible to send metrics', async () => {
 | |
|     return app.request
 | |
|         .post('/api/client/metrics')
 | |
|         .send(metricsExample)
 | |
|         .expect(202);
 | |
| });
 | |
| 
 | |
| test('should require valid send metrics', async () => {
 | |
|     return app.request
 | |
|         .post('/api/client/metrics')
 | |
|         .send({
 | |
|             appName: 'test',
 | |
|         })
 | |
|         .expect(400);
 | |
| });
 | |
| 
 | |
| test('should accept empty client metrics', async () => {
 | |
|     return app.request
 | |
|         .post('/api/client/metrics')
 | |
|         .send({
 | |
|             appName: 'demo',
 | |
|             instanceId: '1',
 | |
|             bucket: {
 | |
|                 start: Date.now(),
 | |
|                 stop: Date.now(),
 | |
|                 toggles: {},
 | |
|             },
 | |
|         })
 | |
|         .expect(202);
 | |
| });
 |