import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
+import pageobjects.Navigation;
+import static com.codeborne.selenide.Condition.visible;
+import static com.codeborne.selenide.Selenide.$;
+import static com.codeborne.selenide.Selenide.$$;
import static util.ItUtils.projectDir;
import static util.selenium.Selenese.runSelenese;
runSelenese(orchestrator, "/measure/ProjectMeasuresPageTest/should_drilldown_on_tree_view.html");
}
+ @Test
+ public void should_show_history() {
+ Navigation nav = Navigation.get(orchestrator);
+ nav.open("/component_measures/metric/reliability_rating/history?id=project-measures-page-test-project");
+ $(".line-chart").shouldBe(visible);
+ $$(".line-chart-tick-x").shouldHaveSize(5);
+ }
+
}
import moment from 'moment';
import React from 'react';
import { extent, max } from 'd3-array';
-import { scaleLinear, scaleOrdinal, scaleTime } from 'd3-scale';
-import { line as d3Line } from 'd3-shape';
+import { scaleLinear, scalePoint, scaleTime } from 'd3-scale';
+import { line as d3Line, curveBasis } from 'd3-shape';
import { ResizeMixin } from '../mixins/resize-mixin';
import { TooltipsMixin } from '../mixins/tooltips-mixin';
data: React.PropTypes.arrayOf(React.PropTypes.object).isRequired,
padding: React.PropTypes.arrayOf(React.PropTypes.number),
height: React.PropTypes.number,
- interpolate: React.PropTypes.string
+ basisCurve: React.PropTypes.bool
},
mixins: [ResizeMixin, TooltipsMixin],
getDefaultProps() {
return {
padding: [10, 10, 10, 10],
- interpolate: 'basis'
+ basisCurve: true
};
},
},
getRatingScale(availableHeight) {
- return scaleOrdinal().domain([5, 4, 3, 2, 1]).rangePoints([availableHeight, 0]);
+ return scalePoint().domain([5, 4, 3, 2, 1]).range([availableHeight, 0]);
},
getLevelScale(availableHeight) {
- return scaleOrdinal().domain(['ERROR', 'WARN', 'OK']).rangePoints([availableHeight, 0]);
+ return scalePoint().domain(['ERROR', 'WARN', 'OK']).range([availableHeight, 0]);
},
getYScale(availableHeight) {
},
renderLine(xScale, yScale) {
- const p = d3Line().x(d => xScale(d.x)).y(d => yScale(d.y)).interpolate(this.props.interpolate);
+ const p = d3Line().x(d => xScale(d.x)).y(d => yScale(d.y));
+ if (this.props.basisCurve) {
+ p.curve(curveBasis);
+ }
return <path className="line-chart-path" d={p(this.props.data)} />;
},