UNPKG

@fusioncharts/fusiontime

Version:

FusionCharts JavaScript time-series charting framework

1 lines 20.5 kB
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _line=_interopRequireDefault(require("./line"));var _index=_interopRequireDefault(require("../../../../../fusioncharts/core/index"));var _index2=require("../../../index");var _fcDatatable=_interopRequireDefault(require("../../../../../fc-datatable"));var _utitilies=require("../../../../../../dev-tests/viz/utitilies");var _lib=require("@fusioncharts/core/src/lib");var domSetup=function domSetup(id){if(id===void 0){id="chart-container"}if(!document.getElementById(id)){var ele=document.createElement("div");ele.setAttribute("id",id);document.body.prepend(ele)}},domTeardown=function domTeardown(id){if(id===void 0){id="chart-container"}var ele=document.getElementById(id);if(ele){document.body.removeChild(ele)}};_index.default.addDep(_index2.TimeSeries);var firstDate=new Date("Sat Feb 01 2014 21:06:00").getTime(),timeGap=new Date("Sat Feb 02 2014 21:06:00").getTime()-firstDate,timeSpan=4*timeGap,pixelRange=[0,45],curBin=[{name:function name(){return"day"}},1,864e5],curBin=curBin=[{name:function name(){return"day"}},1,864e5],lineIndices=[0,1,0,0],areaIndices=[0,1,2,0],xScale={bins:[],getDomain:function getDomain(){return{startDomain:13912128e5,endDomain:13912236e5}},getRange:function getRange(){return[0,400]},getRangeValue:function getRangeValue(v){return v*1.5},getDomainValue:function getDomainValue(v){var ratio=Math.abs(pixelRange[0]-v)/(pixelRange[1]-pixelRange[0]);return new Date(firstDate+ratio*timeSpan)},getBinIndex:function getBinIndex(curTimeStamp,startTimeStamp){if(startTimeStamp===void 0){startTimeStamp=firstDate}return(curTimeStamp-startTimeStamp)/curBin[2]},_getRangeThreshold:function _getRangeThreshold(){return curBin},showPlotOverTick:function showPlotOverTick(){return true},getBinBounds:function getBinBounds(){return _lib.UNDEF}},yScale={getRangeValue:function getRangeValue(){return 3}},dataObj={hoverIndices:true,data:[[{start:13912128e5,end:13912164e5,config:{duration:{Unit:"Hour",number:1,ms:36e5}},outputFormat:"%b %e, %Y %I%p"},2],[{start:13912164e5,end:139122e7,config:{duration:{Unit:"Hour",number:1,ms:36e5}},outputFormat:"%b %e, %Y %I%p"},3],[{start:139122e7,end:13912236e5,config:{duration:{Unit:"Hour",number:1,ms:36e5}},outputFormat:"%b %e, %Y %I%p"},4]],schema:[{name:"starttime",type:"interval",format:"%b %e, %Y %I%p"},{name:"sum of tripduration",type:"number"}],style:{fill:"AFD8F8",stroke:"AFD8F8"},series:"India",isAggregated:true,visibility:"visible"},areaDataObj={hoverIndices:true,data:[[{base:3,start:13912128e5,end:13912164e5,config:{duration:{Unit:"Hour",number:1,ms:36e5}},outputFormat:"%b %e, %Y %I%p"},2,1],[{base:3,start:13912164e5,end:139122e7,config:{duration:{Unit:"Hour",number:1,ms:36e5}},outputFormat:"%b %e, %Y %I%p"},3,1],[{base:3,start:139122e7,end:13912236e5,config:{duration:{Unit:"Hour",number:1,ms:36e5}},outputFormat:"%b %e, %Y %I%p"},4,1]],schema:[{name:"starttime",type:"interval",format:"%b %e, %Y %I%p"},{name:"sum of tripduration",type:"number"}],style:{fill:"AFD8F8",stroke:"AFD8F8"},series:"India",isAggregated:true,visibility:"visible"};describe("To verify _getHoveredPlot method",(function(){var lDS=new _line.default;lDS.getLinkedParent=function(){return{getTranslation:function getTranslation(){return{x:0,y:0}}}};lDS.config.firstTimeStamp=new Date(firstDate).getTime();lDS.config.timeStampGap=timeGap;lDS.addToEnv("xScale",xScale);lDS.config.dataInfo=[{x:0,y:100},{x:15,y:100},{x:30,y:120},{x:45,y:120}];it("LDS-TC-05: To verify if the method returns n'th plot when pointer x, y is inside the plot",(function(){var point=lDS._getHoveredPlot(30,120);expect(point&&point.pointIndex).toBe(2)}));it("LDS-TC-06: To verify if the method returns n'th plot when pointer x, y is on the edge of the plot",(function(){var point=lDS._getHoveredPlot(10,100);expect(point&&point.pointIndex).toBe(1)}));it("LDS-TC-07: To verify if the method does not return n'th plot when pointer x, y is out of the plot",(function(){var point=lDS._getHoveredPlot(9,110);expect(point&&point.hovered).toBe(false);point=lDS._getHoveredPlot(9,116);expect(point&&point.hovered).toBe(false);point=lDS._getHoveredPlot(9,104);expect(point&&point.hovered).toBe(false);point=lDS._getHoveredPlot(16,116);expect(point&&point.pointIndex).not.toBe(0);point=lDS._getHoveredPlot(16,104);expect(point&&point.pointIndex).not.toBe(0)}))}));describe("FASA_TS_1: To validate that correct data generator is used",(function(){var line,graphicalElements;beforeEach((function(){line=new _line.default;graphicalElements={};line.addGraphicalElement=function(obj){graphicalElements[obj.label]=obj};line.getGraphicalElement=function(label){return graphicalElements[label]};line.addToEnv("xScale",xScale);line.addToEnv("yScale",yScale);line.config.data=dataObj.data;line.config.measures=["FusionTime"];line.config.seriesInfo={state:"FusionTime"};line.config.dataInfo=dataObj;line.config.indices=lineIndices;line.config.prediction={enabled:false};line.addToEnv("binDecider",{getRangeThreshold:function getRangeThreshold(){return[0,0,0]}});line.addToEnv("xScale",xScale);line.addToEnv("dateColumn",{format:true});line._isRepositioningNeeded=function(){return true};line.config.nullLinePlotStyle={"stroke-width":2},line.config.linePlotStyle=line.config.predictiveStyleAttributesLine=line.config.nullLinePlotStyle}));afterEach((function(){line=undefined;graphicalElements={}}));it("FASA_TC_1: To verify that lineGenerator is used if dataset type is line",(function(){line.__setDefaultConfig();line.config.type="line";line.config.connectNullData=false;line.config.willInjectNulls=false;line.configureAttributes(dataObj);line.allocatePosition();line._drawPlot();var dsType=graphicalElements[Object.keys(graphicalElements)[1]].label,pathString="M2086819200000,3L2086824600000,3L2086830000000,3",path=graphicalElements[Object.keys(graphicalElements)[1]].attr.path;expect(dsType).toBe("path");expect(path).toBe(pathString)}));it("FASA_TC_2: To verify that lineGenerator is used if dataset type is smooth-path",(function(){line.__setDefaultConfig();line.config.type="smooth-line";line.config.connectNullData=false;line.config.willInjectNulls=false;line.configureAttributes(dataObj);line.allocatePosition();line._drawPlot();var dsType=graphicalElements[Object.keys(graphicalElements)[1]].label,pathString="M2086819200000,3C2086821000000,3,2086822800000,3,2086824600000,3C2086826400000,3,2086828200000,3,2086830000000,3",path=graphicalElements[Object.keys(graphicalElements)[1]].attr.path;expect(dsType).toBe("path");expect(path).toBe(pathString)}));it("FASA_TC_3: To verify that lineGenerator is used if dataset type is step-path",(function(){line.__setDefaultConfig();line.config.type="step-line";line.config.connectNullData=false;line.config.willInjectNulls=false;line.configureAttributes(dataObj);line.allocatePosition();line._drawPlot();var dsType=graphicalElements[Object.keys(graphicalElements)[1]].label,pathString="M2086819200000,3L2086821900000,3L2086821900000,3L2086827300000,3L2086827300000,3L2086830000000,3",path=graphicalElements[Object.keys(graphicalElements)[1]].attr.path;expect(dsType).toBe("path");expect(path).toBe(pathString)}));it("FASA_TC_4: To verify that lineGenerator is used if dataset type is area",(function(){line.__setDefaultConfig();line.config.type="area";line.config.data=areaDataObj.data;line.config.connectNullData=false;line.config.willInjectNulls=false;line.config.indices=areaIndices;line.configureAttributes(areaDataObj);line.allocatePosition();line._drawPlot();var dsType=graphicalElements[Object.keys(graphicalElements)[1]].label,pathString="M2086819200000,3L2086824600000,3L2086830000000,3L2086830000000,3L2086824600000,3L2086819200000,3Z",path=graphicalElements[Object.keys(graphicalElements)[1]].attr.path;expect(dsType).toBe("path");expect(path).toBe(pathString)}));it("FASA_TC_5: To verify that lineGenerator is used if dataset type is smooth-area",(function(){line.__setDefaultConfig();line.config.type="smooth-area";line.config.connectNullData=false;line.config.willInjectNulls=false;line.config.indices=areaIndices;line.config.data=areaDataObj.data;line.configureAttributes(areaDataObj);line.allocatePosition();line._drawPlot();var dsType=graphicalElements[Object.keys(graphicalElements)[1]].label,pathString="M2086819200000,3C2086821000000,3,2086822800000,3,2086824600000,3C2086826400000,3,2086828200000,3,2086830000000,3L2086830000000,3C2086828200000,3,2086826400000,3,2086824600000,3C2086822800000,3,2086821000000,3,2086819200000,3Z",path=graphicalElements[Object.keys(graphicalElements)[1]].attr.path;expect(dsType).toBe("path");expect(path).toBe(pathString)}));it("FASA_TC_6: To verify that lineGenerator is used if dataset type is step-area",(function(){line.__setDefaultConfig();line.config.type="step-area";line.config.connectNullData=false;line.config.willInjectNulls=false;line.config.data=areaDataObj.data;line.config.indices=areaIndices;line.configureAttributes(areaDataObj);line.allocatePosition();line._drawPlot();var dsType=graphicalElements[Object.keys(graphicalElements)[1]].label,pathString="M2086819200000,3L2086821900000,3L2086821900000,3L2086827300000,3L2086827300000,3L2086830000000,3L2086830000000,3L2086827300000,3L2086827300000,3L2086821900000,3L2086821900000,3L2086819200000,3Z",path=graphicalElements[Object.keys(graphicalElements)[1]].attr.path;expect(dsType).toBe("path");expect(path).toBe(pathString)}))}));describe("FASA_TS_2: To validate that correct curve type is used",(function(){var line,graphicalElements;beforeEach((function(){line=new _line.default;graphicalElements={};line.addGraphicalElement=function(obj){graphicalElements[obj.label]=obj};line.getGraphicalElement=function(label){return graphicalElements[label]};line.addToEnv("xScale",xScale);line.addToEnv("yScale",yScale);line.config.data=dataObj.data;line.config.measures=["FusionTime"];line.config.seriesInfo={state:"FusionTime"};line.config.dataInfo=dataObj;line.config.indices=lineIndices;line.config.prediction={enabled:false};line.addToEnv("binDecider",{getRangeThreshold:function getRangeThreshold(){return[0,0,0]}});line.addToEnv("xScale",xScale);line.addToEnv("dateColumn",{format:true});line._isRepositioningNeeded=function(){return true};line.config.nullLinePlotStyle={"stroke-width":2},line.config.linePlotStyle=line.config.predictiveStyleAttributesLine=line.config.nullLinePlotStyle}));afterEach((function(){line=undefined;graphicalElements={}}));it("FASA_TC_7: To verify that linear curve is returned if dataset type is area.",(function(){line.__setDefaultConfig();line.config.type="area";line.config.data=areaDataObj.data;line.config.connectNullData=false;line.config.willInjectNulls=false;line.config.indices=areaIndices;line.configureAttributes(areaDataObj);line.allocatePosition();var pathString="M2086819200000,3L2086824600000,3L2086830000000,3L2086830000000,3L2086824600000,3L2086819200000,3Z",path=line.config.path;expect(path).toBe(pathString)}));it("FASA_TC_8: To verify that curve is returned if dataset type is smooth-line.",(function(){line.__setDefaultConfig();line.config.type="smooth-line";line.config.connectNullData=false;line.config.willInjectNulls=false;line.configureAttributes(dataObj);line.allocatePosition();var pathString="M2086819200000,3C2086821000000,3,2086822800000,3,2086824600000,3C2086826400000,3,2086828200000,3,2086830000000,3",path=line.config.path;expect(path).toBe(pathString)}));it("FASA_TC_9: To verify that curve is returned if dataset type is smooth-area.",(function(){line.__setDefaultConfig();line.config.type="smooth-area";line.config.connectNullData=false;line.config.willInjectNulls=false;line.config.indices=areaIndices;line.config.data=areaDataObj.data;line.configureAttributes(areaDataObj);line.allocatePosition();var pathString="M2086819200000,3C2086821000000,3,2086822800000,3,2086824600000,3C2086826400000,3,2086828200000,3,2086830000000,3L2086830000000,3C2086828200000,3,2086826400000,3,2086824600000,3C2086822800000,3,2086821000000,3,2086819200000,3Z",path=line.config.path;expect(path).toBe(pathString)}));it("FASA_TC_10: To verify that stepcurve is returned if dataset type is step-line, step-area.",(function(){line.__setDefaultConfig();line.config.type="step-line";line.config.connectNullData=false;line.config.willInjectNulls=false;line.configureAttributes(dataObj);line.allocatePosition();var pathString="M2086819200000,3L2086821900000,3L2086821900000,3L2086827300000,3L2086827300000,3L2086830000000,3",path=line.config.path;expect(path).toBe(pathString)}));it("FASA_TC_11: To verify that stepcurve is returned if dataset type is step-line, step-area.",(function(){line.__setDefaultConfig();line.config.type="step-area";line.config.connectNullData=false;line.config.willInjectNulls=false;line.config.data=areaDataObj.data;line.config.indices=areaIndices;line.configureAttributes(areaDataObj);line.allocatePosition();var pathString="M2086819200000,3L2086821900000,3L2086821900000,3L2086827300000,3L2086827300000,3L2086830000000,3L2086830000000,3L2086827300000,3L2086827300000,3L2086821900000,3L2086821900000,3L2086819200000,3Z",path=line.config.path;expect(path).toBe(pathString)}))}));describe("FASA_TS_3: To verify the path for smooth-line dataset",(function(){var line,graphicalElements;beforeEach((function(){line=new _line.default;graphicalElements={};line.addGraphicalElement=function(obj){graphicalElements[obj.label]=obj};line.getGraphicalElement=function(label){return graphicalElements[label]};line.addToEnv("xScale",xScale);line.addToEnv("yScale",yScale);line.config.data=dataObj.data;line.config.measures=["FusionTime"];line.config.seriesInfo={state:"FusionTime"};line.config.dataInfo=dataObj;line.config.indices=lineIndices;line.config.prediction={enabled:false};line.addToEnv("binDecider",{getRangeThreshold:function getRangeThreshold(){return[0,0,0]}});line.addToEnv("xScale",xScale);line.addToEnv("dateColumn",{format:true});line._isRepositioningNeeded=function(){return true};line.config.nullLinePlotStyle={"stroke-width":2},line.config.linePlotStyle=line.config.predictiveStyleAttributesLine=line.config.nullLinePlotStyle}));afterEach((function(){line=undefined;graphicalElements={}}));it("FASA_TC_12: Smooth line path string should be generated according to data provided",(function(){line.__setDefaultConfig();line.config.type="smooth-line";line.config.connectNullData=false;line.config.willInjectNulls=false;line.configureAttributes(dataObj);line.allocatePosition();var pathString="M2086819200000,3C2086821000000,3,2086822800000,3,2086824600000,3C2086826400000,3,2086828200000,3,2086830000000,3",path=line.config.path;expect(path).toBe(pathString)}))}));describe("FASA_TS_4: To verify the path for area dataset",(function(){var line,graphicalElements;beforeEach((function(){line=new _line.default;graphicalElements={};line.addGraphicalElement=function(obj){graphicalElements[obj.label]=obj};line.getGraphicalElement=function(label){return graphicalElements[label]};line.addToEnv("xScale",xScale);line.addToEnv("yScale",yScale);line.config.data=dataObj.data;line.config.measures=["FusionTime"];line.config.seriesInfo={state:"FusionTime"};line.config.dataInfo=dataObj;line.config.indices=lineIndices;line.config.prediction={enabled:false};line.addToEnv("binDecider",{getRangeThreshold:function getRangeThreshold(){return[0,0,0]}});line.addToEnv("xScale",xScale);line.addToEnv("dateColumn",{format:true});line._isRepositioningNeeded=function(){return true};line.config.nullLinePlotStyle={"stroke-width":2},line.config.linePlotStyle=line.config.predictiveStyleAttributesLine=line.config.nullLinePlotStyle}));afterEach((function(){line=undefined;graphicalElements={}}));it("FASA_TC_13: To verify area path string with given data.",(function(){line.__setDefaultConfig();line.config.type="area";line.config.data=areaDataObj.data;line.config.connectNullData=false;line.config.willInjectNulls=false;line.config.indices=areaIndices;line.configureAttributes(areaDataObj);line.allocatePosition();var pathString="M2086819200000,3L2086824600000,3L2086830000000,3L2086830000000,3L2086824600000,3L2086819200000,3Z",path=line.config.path;expect(path).toBe(pathString)}));it("FASA_TC_14: To verify smooth area path string with given data.",(function(){line.__setDefaultConfig();line.config.type="smooth-area";line.config.connectNullData=false;line.config.willInjectNulls=false;line.config.indices=areaIndices;line.config.data=areaDataObj.data;line.configureAttributes(areaDataObj);line.allocatePosition();var pathString="M2086819200000,3C2086821000000,3,2086822800000,3,2086824600000,3C2086826400000,3,2086828200000,3,2086830000000,3L2086830000000,3C2086828200000,3,2086826400000,3,2086824600000,3C2086822800000,3,2086821000000,3,2086819200000,3Z",path=line.config.path;expect(path).toBe(pathString)}));it("FASA_TC_15: To verify step area path string with given data.",(function(){line.__setDefaultConfig();line.config.type="step-area";line.config.connectNullData=false;line.config.willInjectNulls=false;line.config.data=areaDataObj.data;line.config.indices=areaIndices;line.configureAttributes(areaDataObj);line.allocatePosition();var pathString="M2086819200000,3L2086821900000,3L2086821900000,3L2086827300000,3L2086827300000,3L2086830000000,3L2086830000000,3L2086827300000,3L2086827300000,3L2086821900000,3L2086821900000,3L2086819200000,3Z",path=line.config.path;expect(path).toBe(pathString)}))}));describe("Tooltip when hovered",(function(){var data=[["11-Apr-19",0,0],["15-Apr-19",1.22,1.06],["12-Apr-19",1.22,1.06]],schema=[{name:"Time",type:"date",format:"%d-%b-%y"},{name:"test",type:"number"},{name:"Peer Median",type:"number"}],fusionDataStore=new _fcDatatable.default,fusionTable=fusionDataStore.createDataTable(data,schema);var chartData={type:"timeseries",renderAt:_utitilies.CONTAINER_ID,width:600,height:400,dataSource:{data:fusionTable,yaxis:[{title:" ",style:{"grid-line":{"stroke-dasharray":"4 3","stroke-width":2,"stroke-opacity":"3"}},format:{prefix:"",suffix:"%"},plot:[{value:"test",type:"line"},{value:"Peer Median",type:"line",style:{plot:{"stroke-dasharray":"5 2"}}}]}],chart:{palettecolors:["#EE6761","#1A82C2"],showLegend:"0"},extensions:{standardRangeSelector:{enabled:0},customRangeSelector:{enabled:"0"}},plotConfig:{generic:{connectNullData:true}}}},chart;beforeEach((function(){chart=(0,_utitilies.setup)(_index.default,chartData)}));afterEach((function(){return chart.dispose()}));it("will be visible for last data even its one day binning",(function(done){chart.addEventListener("renderComplete",(function(e){e.detachHandler();var canvasGroup=document.querySelectorAll('[class$="canvas-strato"]')[0];canvasGroup.dispatchEvent(new MouseEvent("mouseover",{bubbles:true,clientX:581.5768432617188,clientY:50}));setTimeout((function(){var tooltip=document.querySelectorAll('[class$="fc__tooltip fusioncharts-div"]')[0];expect(tooltip.innerText).not.toBe("");done()}),32)}));chart.render()}))}));describe("Continuous Dataset",(function(){var data=[["11-Apr-19",-10],["12-Apr-19",-5],["13-Apr-19",-2],["14-Apr-19",null],["15-Apr-19",null],["16-Apr-19",-2],["17-Apr-19",null],["18-Apr-19",10],["19-Apr-19",7],["20-Apr-19",3]],schema=[{name:"Time",type:"date",format:"%d-%b-%y"},{name:"MeasureX",type:"number"}],table=(new _fcDatatable.default).createDataTable(data,schema),dataSource={data:table,yAxis:[{plot:[{value:"MeasureX",type:"line"}]},{plot:[{value:"MeasureX",type:"smooth-line"}]},{plot:[{value:"MeasureX",type:"step-line"}]},{plot:[{value:"MeasureX",type:"area"}]},{plot:[{value:"MeasureX",type:"smooth-area"}]},{plot:[{value:"MeasureX",type:"step-area"}]}]},dsSelector=function dsSelector(s){if(s===void 0){s=""}return s===""?'[class*="line-plot"]':'[class*="line-plot-'+s+'"]'},dsSelectorAll=dsSelector();beforeEach((function(){return domSetup()}));afterEach((function(){return domTeardown()}));it("should not connect null data by default",(function(done){var chart=new _index.default({type:"timeseries",height:"550",renderAt:"chart-container",dataSource:dataSource}).render();chart.addEventListener("rendercomplete",(function(_ref){var chart=_ref.sender;var viz=chart.apiInstance,datasets=viz.getDatasets(),dsPaths=Array.from(document.querySelectorAll(dsSelectorAll)).filter((function(g){return g.children.length})).map((function(g){return g.children[0].getAttribute("d")}));datasets.forEach((function(ds){expect(ds.config.connectNullData).toBeFalsy()}));dsPaths.forEach((function(p){return expect(typeof p).toBe("string")}));chart.dispose()}));_index.default.addEventListener("disposed",(function(){return done()}))}))}));