import React from "react";
import { shallow, configure } from "enzyme";
import Adapter from "enzyme-adapter-react-16";
import { findClosestXValue, mapTimestampAndValuePropToXY, FlexibleGraph } from "../../app/src/components/FlexibleGraph";
configure({ adapter: new Adapter() });
describe("FlexibleGraph", () => {
let testData = {
tags: [
{name: "test1", value: 100},
{name: "test2", value: 120}
],
tagHistory: [
[{value: 101.1, timestamp: new Date(0)}, {value: 102.2, timestamp: new Date(10)}, {value: 103.3, timestamp: new Date(25)}, {value: 104.4, timestamp:new Date(37)}],
[{value: 202.2, timestamp: new Date(0)}, {value: 203.3, timestamp: new Date(10)}, {value: 204.4, timestamp: new Date(25)}, {value: 205.5, timestamp:new Date(37)}]
],
tagDescriptions: [
"Test 1",
"Test 2"
],
units: [
"unit1",
"unit2"
],
round: [2, 4]
};
it("should find the closest X value", () => {
expect(findClosestXValue(testData.tagHistory[0], 11)).toEqual({x: 11, y: 102.2});
});
it("should map timestamp and value to x and y", () => {
const expected = [
{y: 101.1, x: 0},
{y: 102.2, x: 10},
{y: 103.3, x: 25},
{y: 104.4, x: 37}
];
expect(mapTimestampAndValuePropToXY(testData.tagHistory[0])).toEqual(expected);
});
it("should render an empty div with no tags", () => {
const wrapper = shallow();
expect(wrapper.find(".flexible-graph-notags")).toHaveLength(1);
});
describe("rendered FlexibleGraph", () => {
let wrapper;
beforeEach(() => {
wrapper = shallow();
});
it("should render a flexible-graph class", () => {
expect(wrapper.find(".flexible-graph")).toHaveLength(1);
});
});
});