@fusioncharts/fusiontime
Version:
FusionCharts JavaScript time-series charting framework
1 lines • 15.7 kB
JavaScript
;var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _timeSpanMinMarker=_interopRequireDefault(require("./time-span-min-marker"));var _SmartlabelManager=_interopRequireDefault(require("../../../../fc-core/src/_internal/vendors/fusioncharts-smartlabel/src/SmartlabelManager"));describe("FTTM_TS_1: To verify that time marker is placed at correct postion",(function(){var UNIT=[0,1];var TM,graphicalElements={},getStyleDef=function getStyleDef(styleDef){return styleDef},xScale={getRange:function getRange(v){return v*1.5},copy:function copy(){return this},setRange:function setRange(inputArr){if(inputArr===void 0){inputArr=UNIT}this.range=inputArr.slice()},getRangeValue:function getRangeValue(v){if(v.getTime()===new Date(2080,0,1,0,0,0,0).getTime())return 105.04;else if(v.getTime()===new Date(2100,0,1,0,0,0,0).getTime())return 315.16;return Number(v)},getDomain:function getDomain(){return[new Date("Sat Feb 01 2014 05:30:00 GMT+0530"),new Date("Sun Feb 02 2114 20:30:00 GMT+0530")]}},yScale={getRange:function getRange(v){return v*1.5},copy:function copy(){return this},setRange:function setRange(inputArr){if(inputArr===void 0){inputArr=UNIT}this.range=inputArr.slice()},getRangeValue:function getRangeValue(v){return Number(v)},getDomain:function getDomain(){return[0,12e5]},ticks:function ticks(){var ticks=[0,2e5,4e5,6e5,8e5,1e6,12e5];return ticks}};beforeEach((function(){TM=new _timeSpanMinMarker.default;TM.addGraphicalElement=function(obj){graphicalElements[obj.id]=obj};TM.getGraphicalElement=function(id){return graphicalElements[id]};TM.getLinkedParent=function(){return{config:{canvasHeight:250,canvasLeft:0,canvasTop:0,canvasWidth:500,canvasBGLeft:0,canvasBGHeight:250,canvasBGWidth:500,canvasBGTop:0,yConfigs:[{scale:yScale}],xConfigs:[{scale:xScale}],padding:{top:0,bottom:0,left:0,right:0}}}};TM.addToEnv("getStyleDef",getStyleDef);TM.addToEnv("xScale",xScale);TM.addToEnv("yScale",yScale);TM.addToEnv("focusScalesX",[{applicableClippings:{},config:{domain:[new Date("Sun Jun 16 2019 11:12:28 GMT+0530"),new Date("Fri Jan 10 2020 18:12:28 GMT+0530")]},getDomain:function getDomain(){return this.config.domain}}]);TM.addToEnv("smartLabel",new _SmartlabelManager.default(document.body||document.getElementsByTagName("body")[0]))}));afterEach((function(){TM=undefined;graphicalElements={}}));it("FTTM_TC_1: Time marker should not be drawn if end date is not given or empty",(function(){var count=0;TM.__setDefaultConfig();TM.configureAttributes({timeMarker:[{label:"Time Marker",start:"Feb 01 2014 09",end:"",timeformat:"%b %d %Y %H",style:{label:{color:"#ff0000"},marker:{fill:"#0000ff"}}}],xScale:xScale});TM.draw();for(var id in graphicalElements){if(graphicalElements[id].label==="line"){count++}}expect(count).toBe(0)}));it("FTTM_TC_2: To verify that time marker is drawn at correct position wrt to axis for given value.",(function(){TM.__setDefaultConfig();TM.configureAttributes({timeMarker:[{start:"2080",end:"2100",type:"minimal",label:"Time Marker",timeformat:"%Y",style:{label:{color:"#ff0000"},marker:{fill:"#0000ff"}}}],xScale:xScale});TM.draw();for(var id in graphicalElements){if(graphicalElements[id].label==="line"){var Diff=Math.abs(graphicalElements[id].attr.x-105);expect(Diff).toBeLessThan(1)}}}));it("FTTM_TC_3: Time marker shoud not overflow canvas height.",(function(){TM.__setDefaultConfig();TM.configureAttributes({timeMarker:[{label:"Time Marker",start:"Feb 01 2014 09",end:"Feb 01 2014 12",timeformat:"%b %d %Y %H",style:{label:{color:"#ff0000"},marker:{fill:"#0000ff"}},type:"full"}],xScale:xScale});TM.draw();for(var id in graphicalElements){if(graphicalElements[id].label==="line"){expect(graphicalElements[id].attr.height).toBe(250)}}}))}));describe("FTTM_TS_2: To verify the position of time markers labels",(function(){var UNIT=[0,1];var TM,graphicalElements={},getStyleDef=function getStyleDef(styleDef){return styleDef},xScale={getRange:function getRange(v){return v*1.5},copy:function copy(){return this},setRange:function setRange(inputArr){if(inputArr===void 0){inputArr=UNIT}this.range=inputArr.slice()},getRangeValue:function getRangeValue(v){if(v.getTime()===new Date(2080,0,1,0,0,0,0).getTime())return 105.04;else if(v.getTime()===new Date(2100,0,1,0,0,0,0).getTime())return 315.16;return Number(v)},getDomain:function getDomain(){return[new Date("Sat Feb 01 2014 05:30:00 GMT+0530"),new Date("Sun Feb 02 2114 20:30:00 GMT+0530")]}},yScale={getRange:function getRange(v){return v*1.5},copy:function copy(){return this},setRange:function setRange(inputArr){if(inputArr===void 0){inputArr=UNIT}this.range=inputArr.slice()},getRangeValue:function getRangeValue(v){return Number(v)},getDomain:function getDomain(){return[0,12e5]},ticks:function ticks(){var ticks=[0,2e5,4e5,6e5,8e5,1e6,12e5];return ticks}};beforeEach((function(){TM=new _timeSpanMinMarker.default;TM.addGraphicalElement=function(obj){graphicalElements[obj.id]=obj};TM.getGraphicalElement=function(id){return graphicalElements[id]};TM.getLinkedParent=function(){return{config:{canvasHeight:250,canvasLeft:0,canvasTop:0,canvasWidth:500,canvasBGLeft:0,canvasBGHeight:250,canvasBGWidth:500,canvasBGTop:0,yConfigs:[{scale:yScale}],xConfigs:[{scale:xScale}],padding:{top:0,bottom:0,left:0,right:0}}}};TM.addToEnv("getStyleDef",getStyleDef);TM.addToEnv("xScale",xScale);TM.addToEnv("yScale",yScale);TM.addToEnv("focusScalesX",[{applicableClippings:{},config:{domain:[new Date("Sun Jun 16 2019 11:12:28 GMT+0530"),new Date("Fri Jan 10 2020 18:12:28 GMT+0530")]},getDomain:function getDomain(){return this.config.domain}}]);TM.addToEnv("smartLabel",new _SmartlabelManager.default(document.body||document.getElementsByTagName("body")[0]))}));afterEach((function(){TM=undefined;graphicalElements={}}));it("FTTM_TC_4: Labels should not be drawn if its not given or empty",(function(){var labelCount=0;TM.__setDefaultConfig();TM.configureAttributes({timeMarker:[{label:"",start:"Feb 01 2014 09",end:"Feb 01 2014 12",timeformat:"%b %d %Y %H",style:{label:{color:"#ff0000"},marker:{fill:"#0000ff"}}}],xScale:xScale});TM.draw();for(var id in graphicalElements){if(graphicalElements[id].label==="label"){labelCount++}}expect(labelCount).toBe(0)}));it("FTTM_TC_5: Labels should be drawn at proper position wrt to marker.",(function(){TM.__setDefaultConfig();TM.configureAttributes({timeMarker:[{start:"2080",end:"2100",type:"minimal",label:"Time Marker",timeformat:"%Y",style:{label:{color:"#ff0000"},marker:{fill:"#0000ff"}}}],xScale:xScale});TM.draw();for(var id in graphicalElements){if(graphicalElements[id].label==="label"){var Diff=Math.abs(graphicalElements[id].attr.x-210);expect(Diff).toBeLessThan(1)}}}))}));describe("FTTM_TS_3: To verify repeat property of time markers",(function(){var UNIT=[0,1];var TM,graphicalElements={},getStyleDef=function getStyleDef(styleDef){return styleDef},xScale={getRange:function getRange(v){return v*1.5},copy:function copy(){return this},setRange:function setRange(inputArr){if(inputArr===void 0){inputArr=UNIT}this.range=inputArr.slice()},getRangeValue:function getRangeValue(v){return Number(v)},getDomain:function getDomain(){return[new Date(2070,0,1,0,0,0,0),new Date(3100,0,1,0,0,0,0)]}},yScale={getRange:function getRange(v){return v*1.5},copy:function copy(){return this},setRange:function setRange(inputArr){if(inputArr===void 0){inputArr=UNIT}this.range=inputArr.slice()},getRangeValue:function getRangeValue(v){return Number(v)},getDomain:function getDomain(){return[0,12e5]},ticks:function ticks(){var ticks=[0,2e5,4e5,6e5,8e5,1e6,12e5];return ticks}};beforeEach((function(){TM=new _timeSpanMinMarker.default;TM.addGraphicalElement=function(obj){graphicalElements[obj.id]=obj};TM.getGraphicalElement=function(id){return graphicalElements[id]};TM.getLinkedParent=function(){return{config:{canvasHeight:250,canvasLeft:0,canvasTop:0,canvasWidth:500,canvasBGLeft:0,canvasBGHeight:250,canvasBGWidth:500,canvasBGTop:0,yConfigs:[{scale:yScale}],xConfigs:[{scale:xScale}],padding:{top:0,bottom:0,left:0,right:0}}}};TM.addToEnv("getStyleDef",getStyleDef);TM.addToEnv("xScale",xScale);TM.addToEnv("yScale",yScale);TM.addToEnv("focusScalesX",[{applicableClippings:{},config:{domain:[new Date("Sun Jun 16 2019 11:12:28 GMT+0530"),new Date("Fri Jan 10 2020 18:12:28 GMT+0530")]},getDomain:function getDomain(){return this.config.domain}}]);TM.addToEnv("smartLabel",new _SmartlabelManager.default(document.body||document.getElementsByTagName("body")[0]))}));afterEach((function(){TM=undefined;graphicalElements={}}));it("FTTM_TC_6: Time marker should be repeatedely drawn according to given value",(function(){TM.__setDefaultConfig();TM.configureAttributes({timeMarker:[{label:"Time Marker",start:"2080",end:"2100",timeformat:"%Y",style:{label:{color:"#ffffff"},marker:{fill:"#0000ff"}},repeat:{unit:"Year",multiplier:"100"}}],xScale:xScale});TM.draw();var timeMarkerArr=[];for(var id in graphicalElements){if(graphicalElements[id].label==="line"){timeMarkerArr.push(graphicalElements[id].attr.x)}}var diffArr=[];timeMarkerArr.forEach((function(xShift,index){if(timeMarkerArr[index+1])diffArr.push(Math.trunc(Math.abs(xShift-timeMarkerArr[index+1])/1e9))}));diffArr.forEach((function(diff){expect(diff).toBe(3155)}))}));it("FTTM_TC_7: One Time marker value should be drawn when mulitiplier value is set to 0.",(function(){var count=0;TM.__setDefaultConfig();TM.configureAttributes({timeMarker:[{label:"Time Marker",start:"2080",end:"2100",timeformat:"%Y",style:{label:{color:"#ffffff"},marker:{fill:"#0000ff"}},repeat:{unit:"Year",multiplier:"0"}}],xScale:xScale});TM.draw();for(var id in graphicalElements){if(graphicalElements[id].label==="line"){count++}}expect(count).toBe(1)}))}));describe("FTTM_TS_4: To verify the cosmetics of time marker lines/spans",(function(){var UNIT=[0,1];var TM,graphicalElements={},getStyleDef=function getStyleDef(styleDef){return styleDef},xScale={getRange:function getRange(v){return v*1.5},copy:function copy(){return this},setRange:function setRange(inputArr){if(inputArr===void 0){inputArr=UNIT}this.range=inputArr.slice()},getRangeValue:function getRangeValue(v){return Number(v)},getDomain:function getDomain(){return[new Date("Sat Feb 01 2014 05:30:00 GMT0530"),new Date("Sun Feb 05 2014 20:30:00 GMT0530")]}},yScale={getRange:function getRange(v){return v*1.5},copy:function copy(){return this},setRange:function setRange(inputArr){if(inputArr===void 0){inputArr=UNIT}this.range=inputArr.slice()},getRangeValue:function getRangeValue(v){return Number(v)},getDomain:function getDomain(){return[0,12e5]},ticks:function ticks(){var ticks=[0,2e5,4e5,6e5,8e5,1e6,12e5];return ticks}};beforeEach((function(){TM=new _timeSpanMinMarker.default;TM.addGraphicalElement=function(obj){graphicalElements[obj.id]=obj};TM.getGraphicalElement=function(id){return graphicalElements[id]};TM.getLinkedParent=function(){return{config:{canvasHeight:250,canvasLeft:0,canvasTop:0,canvasWidth:500,canvasBGLeft:0,canvasBGHeight:250,canvasBGWidth:500,canvasBGTop:0,yConfigs:[{scale:yScale}],xConfigs:[{scale:xScale}],padding:{top:0,bottom:0,left:0,right:0}}}};TM.addToEnv("getStyleDef",getStyleDef);TM.addToEnv("xScale",xScale);TM.addToEnv("yScale",yScale);TM.addToEnv("focusScalesX",[{applicableClippings:{},config:{domain:[new Date("Sun Jun 16 2019 11:12:28 GMT+0530"),new Date("Fri Jan 10 2020 18:12:28 GMT+0530")]},getDomain:function getDomain(){return this.config.domain}}]);TM.addToEnv("smartLabel",new _SmartlabelManager.default(document.body||document.getElementsByTagName("body")[0]))}));afterEach((function(){TM=undefined;graphicalElements={}}));it("FTTM_TC_8: Cosmetics should be applied as per given value.",(function(){TM.__setDefaultConfig();TM.configureAttributes({timeMarker:[{label:"Time Marker",start:"Feb 01 2014 09",end:"Feb 01 2014 12",timeformat:"%b %d %Y %H",style:{label:{color:"#ffffff"},marker:{fill:"#0000ff","stroke-width":3,opacity:"0.5"}}}],xScale:xScale});TM.draw();for(var id in graphicalElements){if(graphicalElements[id].label==="line"){expect(graphicalElements[id].css.fill).toBe("#0000ff");expect(graphicalElements[id].css["stroke-width"]).toBe(3);expect(graphicalElements[id].css.opacity).toBe("0.5")}}}));it("FTTM_TC_9: Cosmetics should be applied as per default value if its not given or for garbage value",(function(){TM.__setDefaultConfig();TM.configureAttributes({timeMarker:[{label:"Time Marker",start:"Feb 01 2014 09",end:"Feb 01 2014 12",timeformat:"%b %d %Y %H"}],xScale:xScale});TM.draw();for(var id in graphicalElements){if(graphicalElements[id].label==="line"){expect(graphicalElements[id].css.fill).toBe("#62b58f");expect(graphicalElements[id].css["stroke-width"]).toBe(1);expect(graphicalElements[id].css.opacity).toBe(.2)}}}))}));describe("FTTM_TS_5: To verify cosmetics of time marker labels.",(function(){var UNIT=[0,1];var TM,graphicalElements={},getStyleDef=function getStyleDef(styleDef){return styleDef},xScale={getRange:function getRange(v){return v*1.5},copy:function copy(){return this},setRange:function setRange(inputArr){if(inputArr===void 0){inputArr=UNIT}this.range=inputArr.slice()},getRangeValue:function getRangeValue(v){return Number(v)},getDomain:function getDomain(){return[new Date("Sat Feb 01 2014 05:30:00 GMT0530"),new Date("Sun Feb 05 2014 20:30:00 GMT0530")]}},yScale={getRange:function getRange(v){return v*1.5},copy:function copy(){return this},setRange:function setRange(inputArr){if(inputArr===void 0){inputArr=UNIT}this.range=inputArr.slice()},getRangeValue:function getRangeValue(v){return Number(v)},getDomain:function getDomain(){return[0,12e5]},ticks:function ticks(){var ticks=[0,2e5,4e5,6e5,8e5,1e6,12e5];return ticks}};beforeEach((function(){TM=new _timeSpanMinMarker.default;TM.addGraphicalElement=function(obj){graphicalElements[obj.id]=obj};TM.getGraphicalElement=function(id){return graphicalElements[id]};TM.getLinkedParent=function(){return{config:{canvasHeight:250,canvasLeft:0,canvasTop:0,canvasWidth:500,canvasBGLeft:0,canvasBGHeight:250,canvasBGWidth:500,canvasBGTop:0,yConfigs:[{scale:yScale}],xConfigs:[{scale:xScale}],padding:{top:0,bottom:0,left:0,right:0}}}};TM.addToEnv("getStyleDef",getStyleDef);TM.addToEnv("xScale",xScale);TM.addToEnv("yScale",yScale);TM.addToEnv("focusScalesX",[{applicableClippings:{},config:{domain:[new Date("Sun Jun 16 2019 11:12:28 GMT+0530"),new Date("Fri Jan 10 2020 18:12:28 GMT+0530")]},getDomain:function getDomain(){return this.config.domain}}]);TM.addToEnv("smartLabel",new _SmartlabelManager.default(document.body||document.getElementsByTagName("body")[0]))}));afterEach((function(){TM=undefined;graphicalElements={}}));it("FTTM_TC_10: Cosmetics should be applied as per given value.",(function(){TM.__setDefaultConfig();TM.configureAttributes({timeMarker:[{label:"Time Marker",start:"Feb 01 2014 09",end:"Feb 01 2014 12",timeformat:"%b %d %Y %H",style:{text:{fill:"#0000ff","font-size":"15px",opacity:"0.2"}}}],xScale:xScale});TM.draw();for(var id in graphicalElements){if(graphicalElements[id].label==="label"){expect(graphicalElements[id].css.fill).toBe("#0000ff");expect(graphicalElements[id].css["font-size"]).toBe("15px");expect(graphicalElements[id].css["opacity"]).toBe("0.2")}}}));it("FTTM_TC_11: Cosmetics should be applied as per default value if its not given or for garbage value.",(function(){TM.__setDefaultConfig();TM.configureAttributes({timeMarker:[{label:"Time Marker",start:"Feb 01 2014 09",end:"Feb 01 2014 12",timeformat:"%b %d %Y %H",style:{text:{}}}],xScale:xScale});TM.draw();for(var id in graphicalElements){if(graphicalElements[id].label==="label"){expect(graphicalElements[id].css.fill).toBe("#808080");expect(graphicalElements[id].css["font-size"]).toBe("10px")}}}))}));