Browse Source

stackdriver: test saved variable

Erik Sundell 7 years ago
parent
commit
9c85793dbb

+ 22 - 8
public/app/plugins/datasource/stackdriver/components/TemplateQueryComponent.test.tsx

@@ -2,14 +2,15 @@ import React from 'react';
 import renderer from 'react-test-renderer';
 import { StackdriverTemplateQueryComponent } from './TemplateQueryComponent';
 import { TemplateQueryProps } from 'app/types/plugins';
+import { MetricFindQueryTypes } from '../types';
 
 jest.mock('../functions', () => ({
-  getMetricTypes: async () => ({ metricTypes: [], selectedMetricType: '' }),
+  getMetricTypes: () => ({ metricTypes: [], selectedMetricType: '' }),
 }));
 
 const props: TemplateQueryProps = {
   onChange: (query, definition) => {},
-  query: '',
+  query: {},
   datasource: {
     getMetricTypes: async p => [],
   },
@@ -21,11 +22,24 @@ describe('StackdriverTemplateQueryComponent', () => {
     expect(tree).toMatchSnapshot();
   });
 
-  it('should use the first query type in the array if no query type was saved before', done => {
-    props.onChange = (query, definition) => {
-      expect(definition).toBe('Stackdriver - Metric Types');
-      done();
-    };
-    renderer.create(<StackdriverTemplateQueryComponent {...props} />).toJSON();
+  describe('and a new variable is created', () => {
+    it('should trigger a query using the first query type in the array', done => {
+      props.onChange = (query, definition) => {
+        expect(definition).toBe('Stackdriver - Metric Types');
+        done();
+      };
+      renderer.create(<StackdriverTemplateQueryComponent {...props} />).toJSON();
+    });
+  });
+
+  describe('and an existing variable is edited', () => {
+    it('should trigger new query using the saved query type', done => {
+      props.query = { selectedQueryType: MetricFindQueryTypes.MetricLabels };
+      props.onChange = (query, definition) => {
+        expect(definition).toBe('Stackdriver - Metric Labels');
+        done();
+      };
+      renderer.create(<StackdriverTemplateQueryComponent {...props} />).toJSON();
+    });
   });
 });

+ 3 - 0
public/app/plugins/datasource/stackdriver/components/TemplateQueryComponent.tsx

@@ -33,7 +33,9 @@ export class StackdriverTemplateQueryComponent extends PureComponent<TemplateQue
     this.onServiceChange = this.onServiceChange.bind(this);
     this.onMetricTypeChange = this.onMetricTypeChange.bind(this);
     this.onLabelKeyChange = this.onLabelKeyChange.bind(this);
+    console.log(this.props.query);
     this.state = Object.assign(this.defaults, this.props.query);
+    console.log(Object.assign(this.defaults, this.props.query));
   }
 
   async componentDidMount() {
@@ -63,6 +65,7 @@ export class StackdriverTemplateQueryComponent extends PureComponent<TemplateQue
       metricDescriptors,
       ...await this.getLabels(selectedMetricType),
     };
+    console.log(state);
     this.setState(state);
   }