Commit b8c35551 by Torkel Ödegaard

Merge branch 'master' into bar-gauge-refactoring

parents 6be416dd abbb7b81
...@@ -20,6 +20,16 @@ ...@@ -20,6 +20,16 @@
* **Datasource**: Empty user/password was not updated when updating datasources [#15608](https://github.com/grafana/grafana/pull/15608), thx [@Maddin-619](https://github.com/Maddin-619) * **Datasource**: Empty user/password was not updated when updating datasources [#15608](https://github.com/grafana/grafana/pull/15608), thx [@Maddin-619](https://github.com/Maddin-619)
* **Heatmap**: legend shows wrong colors for small values [#14019](https://github.com/grafana/grafana/issues/14019) * **Heatmap**: legend shows wrong colors for small values [#14019](https://github.com/grafana/grafana/issues/14019)
# 6.0.2 (unreleased)
### Bug Fixes
* **Alerting**: Fixed issue with AlertList panel links resulting in panel not found errors. [#15975](https://github.com/grafana/grafana/pull/15975), [@torkelo](https://github.com/torkelo)
* **Dashboard**: Improved error handling when rendering dashboard panels. [#15970](https://github.com/grafana/grafana/pull/15970), [@torkelo](https://github.com/torkelo)
* **LDAP**: Fix allow anonymous server bind for ldap search. [#15872](https://github.com/grafana/grafana/pull/15872), [@marefr](https://github.com/marefr)
* **Discord**: Fix discord notifier so it doesn't crash when there are no image generated. [#15833](https://github.com/grafana/grafana/pull/15833), [@marefr](https://github.com/marefr)
* **Panel Edit**: Prevent search in VizPicker from stealing focus. [#15802](https://github.com/grafana/grafana/pull/15802), [@peterholmberg](https://github.com/peterholmberg)
* **Datasource admin**: Fixed url of back button in datasource edit page, when root_url configured. [#15759](https://github.com/grafana/grafana/pull/15759), [@dprokop](https://github.com/dprokop)
# 6.0.1 (2019-03-06) # 6.0.1 (2019-03-06)
### Bug Fixes ### Bug Fixes
......
import React from 'react';
import { storiesOf } from '@storybook/react';
import { action } from '@storybook/addon-actions';
import { ThresholdsEditor } from './ThresholdsEditor';
const ThresholdsEditorStories = storiesOf('UI/ThresholdsEditor', module);
const thresholds = [{ index: 0, value: -Infinity, color: 'green' }, { index: 1, value: 50, color: 'red' }];
ThresholdsEditorStories.add('default', () => {
return <ThresholdsEditor thresholds={[]} onChange={action('Thresholds changed')} />;
});
ThresholdsEditorStories.add('with thresholds', () => {
return <ThresholdsEditor thresholds={thresholds} onChange={action('Thresholds changed')} />;
});
import React, { ChangeEvent } from 'react'; import React, { ChangeEvent } from 'react';
import { mount } from 'enzyme'; import { mount } from 'enzyme';
import { ThresholdsEditor, Props } from './ThresholdsEditor'; import { ThresholdsEditor, Props } from './ThresholdsEditor';
import { colors } from '../../utils';
const setup = (propOverrides?: Partial<Props>) => { const setup = (propOverrides?: Partial<Props>) => {
const props: Props = { const props: Props = {
...@@ -31,7 +32,7 @@ describe('Initialization', () => { ...@@ -31,7 +32,7 @@ describe('Initialization', () => {
it('should add a base threshold if missing', () => { it('should add a base threshold if missing', () => {
const { instance } = setup(); const { instance } = setup();
expect(instance.state.thresholds).toEqual([{ index: 0, value: -Infinity, color: '#7EB26D' }]); expect(instance.state.thresholds).toEqual([{ index: 0, value: -Infinity, color: colors[0] }]);
}); });
}); });
...@@ -41,7 +42,7 @@ describe('Add threshold', () => { ...@@ -41,7 +42,7 @@ describe('Add threshold', () => {
instance.onAddThreshold(0); instance.onAddThreshold(0);
expect(instance.state.thresholds).toEqual([{ index: 0, value: -Infinity, color: '#7EB26D' }]); expect(instance.state.thresholds).toEqual([{ index: 0, value: -Infinity, color: colors[0] }]);
}); });
it('should add threshold', () => { it('should add threshold', () => {
...@@ -50,41 +51,41 @@ describe('Add threshold', () => { ...@@ -50,41 +51,41 @@ describe('Add threshold', () => {
instance.onAddThreshold(1); instance.onAddThreshold(1);
expect(instance.state.thresholds).toEqual([ expect(instance.state.thresholds).toEqual([
{ index: 0, value: -Infinity, color: '#7EB26D' }, { index: 0, value: -Infinity, color: colors[0] },
{ index: 1, value: 50, color: '#EAB839' }, { index: 1, value: 50, color: colors[2] },
]); ]);
}); });
it('should add another threshold above a first', () => { it('should add another threshold above a first', () => {
const { instance } = setup({ const { instance } = setup({
thresholds: [{ index: 0, value: -Infinity, color: '#7EB26D' }, { index: 1, value: 50, color: '#EAB839' }], thresholds: [{ index: 0, value: -Infinity, color: colors[0] }, { index: 1, value: 50, color: colors[2] }],
}); });
instance.onAddThreshold(2); instance.onAddThreshold(2);
expect(instance.state.thresholds).toEqual([ expect(instance.state.thresholds).toEqual([
{ index: 0, value: -Infinity, color: '#7EB26D' }, { index: 0, value: -Infinity, color: colors[0] },
{ index: 1, value: 50, color: '#EAB839' }, { index: 1, value: 50, color: colors[2] },
{ index: 2, value: 75, color: '#6ED0E0' }, { index: 2, value: 75, color: colors[3] },
]); ]);
}); });
it('should add another threshold between first and second index', () => { it('should add another threshold between first and second index', () => {
const { instance } = setup({ const { instance } = setup({
thresholds: [ thresholds: [
{ index: 0, value: -Infinity, color: '#7EB26D' }, { index: 0, value: -Infinity, color: colors[0] },
{ index: 1, value: 50, color: '#EAB839' }, { index: 1, value: 50, color: colors[2] },
{ index: 2, value: 75, color: '#6ED0E0' }, { index: 2, value: 75, color: colors[3] },
], ],
}); });
instance.onAddThreshold(2); instance.onAddThreshold(2);
expect(instance.state.thresholds).toEqual([ expect(instance.state.thresholds).toEqual([
{ index: 0, value: -Infinity, color: '#7EB26D' }, { index: 0, value: -Infinity, color: colors[0] },
{ index: 1, value: 50, color: '#EAB839' }, { index: 1, value: 50, color: colors[2] },
{ index: 2, value: 62.5, color: '#EF843C' }, { index: 2, value: 62.5, color: colors[4] },
{ index: 3, value: 75, color: '#6ED0E0' }, { index: 3, value: 75, color: colors[3] },
]); ]);
}); });
}); });
......
...@@ -3,8 +3,8 @@ import { Threshold } from '../../types'; ...@@ -3,8 +3,8 @@ import { Threshold } from '../../types';
import { ColorPicker } from '..'; import { ColorPicker } from '..';
import { PanelOptionsGroup } from '..'; import { PanelOptionsGroup } from '..';
import { colors } from '../../utils'; import { colors } from '../../utils';
import { ThemeContext } from '../../themes/ThemeContext'; import { ThemeContext } from '../../themes';
import { getColorFromHexRgbOrName } from '../../utils/namedColorsPalette'; import { getColorFromHexRgbOrName } from '../../utils';
export interface Props { export interface Props {
thresholds: Threshold[]; thresholds: Threshold[];
......
...@@ -14,7 +14,7 @@ function exit_if_fail { ...@@ -14,7 +14,7 @@ function exit_if_fail {
start=$(date +%s) start=$(date +%s)
exit_if_fail npm run prettier:check exit_if_fail npm run prettier:check
# exit_if_fail npm run test exit_if_fail npm run test
end=$(date +%s) end=$(date +%s)
seconds=$((end - start)) seconds=$((end - start))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment