Selaa lähdekoodia

Panels: Fixed issue with panel type change and data updates (#16871)

Torkel Ödegaard 6 vuotta sitten
vanhempi
commit
40b771c04d

+ 8 - 0
public/app/features/dashboard/state/PanelModel.test.ts

@@ -87,7 +87,10 @@ describe('PanelModel', () => {
     });
 
     describe('when changing panel type', () => {
+      let panelQueryRunner: any;
+
       beforeEach(() => {
+        panelQueryRunner = model.getQueryRunner();
         model.changePlugin(getPanelPlugin({ id: 'graph' }));
         model.alert = { id: 2 };
       });
@@ -105,6 +108,11 @@ describe('PanelModel', () => {
         model.changePlugin(getPanelPlugin({ id: 'table' }));
         expect(model.alert).toBe(undefined);
       });
+
+      it('getQueryRunner() should return same instance after plugin change', () => {
+        const sameQueryRunner = model.getQueryRunner();
+        expect(panelQueryRunner).toBe(sameQueryRunner);
+      });
     });
 
     describe('when changing from angular panel', () => {

+ 1 - 1
public/app/features/dashboard/state/PanelModel.ts

@@ -33,7 +33,6 @@ const notPersistedProperties: { [str: string]: boolean } = {
 // To make sure the change happens without strange bugs happening when panels use same
 // named property with different type / value expectations
 // This is not required for react panels
-
 const mustKeepProps: { [str: string]: boolean } = {
   id: true,
   gridPos: true,
@@ -63,6 +62,7 @@ const mustKeepProps: { [str: string]: boolean } = {
   cachedPluginOptions: true,
   transparent: true,
   pluginVersion: true,
+  queryRunner: true,
 };
 
 const defaults: any = {