mirror of https://github.com/grafana/grafana.git
				
				
				
			
		
			
				
	
	
		
			57 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
| import { PanelTypeChangedHandler } from '@grafana/data';
 | |
| import { getPanelPlugin } from '@grafana/data/test';
 | |
| import { PanelModel } from 'app/features/dashboard/state/PanelModel';
 | |
| 
 | |
| import { getAngularPanelMigrationHandler } from './angularMigration';
 | |
| 
 | |
| describe('getAngularPanelMigrationHandler', () => {
 | |
|   describe('Given an old angular panel', () => {
 | |
|     it('Should call migration handler', () => {
 | |
|       const onPanelTypeChanged: PanelTypeChangedHandler = (panel, prevPluginId, prevOptions) => {
 | |
|         panel.fieldConfig = { defaults: { unit: 'bytes' }, overrides: [] };
 | |
|         return { name: prevOptions.angular.oldOptionProp };
 | |
|       };
 | |
| 
 | |
|       const reactPlugin = getPanelPlugin({ id: 'timeseries' }).setPanelChangeHandler(onPanelTypeChanged);
 | |
| 
 | |
|       const oldModel = new PanelModel({
 | |
|         autoMigrateFrom: 'graph',
 | |
|         oldOptionProp: 'old name',
 | |
|         type: 'timeseries',
 | |
|       });
 | |
| 
 | |
|       const mutatedModel = {
 | |
|         id: 1,
 | |
|         type: 'timeseries',
 | |
|         options: {},
 | |
|         fieldConfig: { defaults: {}, overrides: [] },
 | |
|       };
 | |
| 
 | |
|       getAngularPanelMigrationHandler(oldModel)(mutatedModel, reactPlugin);
 | |
| 
 | |
|       expect(mutatedModel.options).toEqual({ name: 'old name' });
 | |
|       expect(mutatedModel.fieldConfig).toEqual({ defaults: { unit: 'bytes' }, overrides: [] });
 | |
|     });
 | |
|   });
 | |
| 
 | |
|   describe('Given a react panel with old angular properties', () => {
 | |
|     it('Should pass panel model with old angular properties', () => {
 | |
|       const reactPlugin = getPanelPlugin({ id: 'dashlist' });
 | |
| 
 | |
|       const oldModel = new PanelModel({
 | |
|         angularProp: 'old name',
 | |
|         type: 'dashlist',
 | |
|       });
 | |
| 
 | |
|       const mutatedModel: any = {
 | |
|         type: 'dashlist',
 | |
|         options: {},
 | |
|       };
 | |
| 
 | |
|       getAngularPanelMigrationHandler(oldModel)(mutatedModel, reactPlugin);
 | |
| 
 | |
|       expect(mutatedModel.angularProp).toEqual('old name');
 | |
|     });
 | |
|   });
 | |
| });
 |