@fusioncharts/fusiontime
Version:
FusionCharts JavaScript time-series charting framework
1 lines • 10.7 kB
JavaScript
;var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _referenceLine=_interopRequireDefault(require("./reference-line"));var _canvas=_interopRequireDefault(require("./canvas"));var _SmartlabelManager=_interopRequireDefault(require("@fusioncharts/core/src/_internal/vendors/fusioncharts-smartlabel/src/SmartlabelManager"));var PATH_STRING="M,0,800000,h,500",getStyleDef=function getStyleDef(styleDef){return styleDef},UNIT=[0,1],yScale={getRange:function getRange(v){return v*1.2},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,1202794]}};describe("FTRL_TS_1: To verify that reference line is placed at correct position",(function(){var refLine,canvas,graphicalElements={},configObj={yScale:yScale,referenceLine:{label:"Reference Line One",value:8e5,direction:"right",style:{marker:{color:"#00FF00"},label:{verticalalign:"top"}}}};beforeEach((function(){canvas=new _canvas.default;canvas.config={borderConfig:{leftBorder:0,topBorder:0,rightBorder:0,bottomBorder:0},canvasBGColor:"rgba(255,255,255,1)",canvasBGHeight:90,canvasBGLeft:0,canvasBGTop:12,canvasBGWidth:500,canvasBorderColor:"rgba(214,214,214,1)",canvasHeight:80,canvasLeft:0,canvasTop:12,canvasWidth:500};refLine=canvas.attachChild(_referenceLine.default,"referenceLine");graphicalElements={};refLine.addGraphicalElement=function(obj){graphicalElements[obj.label]=obj};refLine.getGraphicalElement=function(label){return graphicalElements[label]};refLine.addToEnv("getStyleDef",getStyleDef);refLine.addToEnv("yScale",yScale)}));afterEach((function(){refLine=undefined;graphicalElements={}}));it("FTRL_TC_1: To verify that reference line is at correct position wrt to axis for given value.",(function(){refLine.__setDefaultConfig();refLine.configureAttributes(configObj);refLine.draw();var path=graphicalElements["line"].attr.path.join(),pathString=PATH_STRING;expect(path).toBe(pathString)}));it("FTRL_TC_2: To verify that reference line is at correct position wrt to axis for given value for out of domain value",(function(){refLine.__setDefaultConfig();refLine.configureAttributes({yScale:yScale,referenceLine:{label:"Reference Line One",value:-8e5,style:{marker:{color:"#00FF00"},label:{verticalalign:"top"}}},direction:"right"});refLine.draw();expect(graphicalElements["line"]).toBeUndefined()}))}));describe("FTRL_TS_2: To verify the position of label of reference line.",(function(){var refLine,canvas,graphicalElements={},configObj={yScale:yScale,referenceLine:{label:"Reference Line One",value:8e5,style:{marker:{color:"#00FF00"},label:{verticalalign:"top"}}}};beforeEach((function(){canvas=new _canvas.default;canvas.config={borderConfig:{leftBorder:0,topBorder:0,rightBorder:0,bottomBorder:0},canvasBGColor:"rgba(255,255,255,1)",canvasBGHeight:90,canvasBGLeft:0,canvasBGTop:12,canvasBGWidth:500,canvasBorderColor:"rgba(214,214,214,1)",canvasHeight:80,canvasLeft:0,canvasTop:12,canvasWidth:500};refLine=canvas.attachChild(_referenceLine.default,"referenceLine");refLine.addToEnv("smartLabel",new _SmartlabelManager.default(document.body||document.getElementsByTagName("body")[0]));graphicalElements={};refLine.addGraphicalElement=function(obj){graphicalElements[obj.label]=obj};refLine.getGraphicalElement=function(label){return graphicalElements[label]};refLine.addToEnv("getStyleDef",getStyleDef);refLine.addToEnv("yScale",yScale)}));afterEach((function(){refLine=undefined;graphicalElements={}}));it("FTRL_TC_3: Label should be drawn according to the direction of reference lines",(function(){refLine.__setDefaultConfig();refLine.configureAttributes(Object.assign({isHovered:true},configObj));refLine.draw();expect(graphicalElements.label).toBeDefined();expect(graphicalElements.label.attr.x).toBe(497);expect(graphicalElements.label.attr.y).toBe(800004)}));it("FTRL_TC_4: Label should not be drawn if its not given or empty",(function(){refLine.__setDefaultConfig();refLine.configureAttributes({yScale:yScale,isHovered:true,referenceLine:{label:"",value:8e5,style:{marker:{color:"#00FF00"},label:{verticalalign:"top"}}}});refLine.draw();expect(graphicalElements.label).toBeUndefined()}))}));describe("FTRL_TS_3: To verify the cosmetics of reference line and label",(function(){var refLine,canvas,graphicalElements={},configObj={yScale:yScale,isHovered:true,referenceLine:{label:"Reference Line One",value:8e5,style:{marker:{stroke:"#00ff00"},text:{fill:"#0000ff"}}}};beforeEach((function(){canvas=new _canvas.default;canvas.config={borderConfig:{leftBorder:0,topBorder:0,rightBorder:0,bottomBorder:0},canvasBGColor:"rgba(255,255,255,1)",canvasBGHeight:90,canvasBGLeft:0,canvasBGTop:12,canvasBGWidth:500,canvasBorderColor:"rgba(214,214,214,1)",canvasHeight:80,canvasLeft:0,canvasTop:12,canvasWidth:500};refLine=canvas.attachChild(_referenceLine.default,"referenceLine");refLine.addToEnv("smartLabel",new _SmartlabelManager.default(document.body||document.getElementsByTagName("body")[0]));graphicalElements={};refLine.addGraphicalElement=function(obj){graphicalElements[obj.label]=obj};refLine.getGraphicalElement=function(label){return graphicalElements[label]};refLine.addToEnv("getStyleDef",getStyleDef);refLine.addToEnv("yScale",yScale)}));afterEach((function(){refLine=undefined;graphicalElements={}}));it("FTRL_TC_6: color of reference line and text background should be set according to style. ",(function(){refLine.__setDefaultConfig();refLine.configureAttributes(configObj);refLine.draw();expect(graphicalElements.label.css.fill).toBe("#0000ff");expect(graphicalElements.line.attr.stroke).toBe("#00ff00")}));it("FTRL_TC_7: color of reference line and text background should be set according to style. ",(function(){refLine.__setDefaultConfig();refLine.configureAttributes({yScale:yScale,isHovered:true,referenceLine:{label:"Reference Line One",value:8e5,style:{marker:{stroke:"#000000"},text:{fill:"#888888"}}}});refLine.draw();expect(graphicalElements.label.css.fill).toBe("#888888");expect(graphicalElements.line.attr.stroke).toBe("#000000")}))}));describe("FTRL_TS_4: To verify the font property of labels",(function(){var refLine,canvas,graphicalElements={},configObj={yScale:yScale,isHovered:true,referenceLine:{label:"Reference Line One",value:8e5,style:{marker:{color:"#00ff00"},label:{verticalalign:"top",fontcolor:"#0000ff",fontsize:20}}}};beforeEach((function(){canvas=new _canvas.default;canvas.config={borderConfig:{leftBorder:0,topBorder:0,rightBorder:0,bottomBorder:0},canvasBGColor:"rgba(255,255,255,1)",canvasBGHeight:90,canvasBGLeft:0,canvasBGTop:12,canvasBGWidth:500,canvasBorderColor:"rgba(214,214,214,1)",canvasHeight:80,canvasLeft:0,canvasTop:12,canvasWidth:500};refLine=canvas.attachChild(_referenceLine.default,"referenceLine");refLine.addToEnv("smartLabel",new _SmartlabelManager.default(document.body||document.getElementsByTagName("body")[0]));refLine.addToEnv("getStyleDef",getStyleDef);refLine.addToEnv("yScale",yScale);graphicalElements={};refLine.addGraphicalElement=function(obj){graphicalElements[obj.label]=obj};refLine.getGraphicalElement=function(label){return graphicalElements[label]}}));afterEach((function(){refLine=undefined;graphicalElements={}}));it("FTRL_TC_8: Font styles should be set according to provided base text styles",(function(){refLine.__setDefaultConfig();refLine.configureAttributes(configObj);canvas.addToEnv("baseTextStyle",{"font-family":"sans-serif","font-size":10});refLine.draw();expect(graphicalElements.label.css["font-size"]).toBe(10);expect(graphicalElements.label.css["font-family"]).toBe("sans-serif")}));it("FTRL_TC_9: Font styles should be set to a default value if style is undefined or invalid",(function(){refLine.__setDefaultConfig();refLine.configureAttributes({yScale:yScale,isHovered:true,referenceLine:{label:"Reference Line One",value:8e5,style:{marker:{color:"#00ff00"},label:{verticalalign:"top",fontcolor:"#0000ff"}}}});canvas.addToEnv("textStyle",{"font-family":"sans-serif"});refLine.draw();expect(graphicalElements.label.css["font-size"]).toBe("11px")}))}));describe("A Reference Line",(function(){var refLine,canvas,graphicalElements={};beforeEach((function(){canvas=new _canvas.default;canvas.config={borderConfig:{topBorder:0,leftBorder:0,rightBorder:0,bottomBorder:0},canvasLeft:0,canvasTop:12,canvasHeight:80,canvasWidth:500};refLine=canvas.attachChild(_referenceLine.default,"referenceLine");refLine.addToEnv("smartLabel",new _SmartlabelManager.default(document.body||document.getElementsByTagName("body")[0]));refLine.addToEnv("getStyleDef",getStyleDef);refLine.addToEnv("yScale",yScale);refLine.addGraphicalElement=function(obj){return graphicalElements[obj.label]=obj};refLine.getGraphicalElement=function(label){return graphicalElements[label]}}));afterEach((function(){refLine=undefined;graphicalElements={}}));it("should have tags which are able to accommodate formatted values",(function(){var formatterFn=function formatterFn(_ref){var value=_ref.value;return value.toFixed(8)};refLine.__setDefaultConfig();refLine.configure({yScale:yScale,formatterFn:formatterFn,isHovered:true,referenceLine:{value:8e5}});refLine.draw();var a=refLine.getFromEnv("smartLabel").getSize(formatterFn({value:8e5}));expect(graphicalElements.tag.attr.path).toEqual(["M",0,8e5,"L",-5,8e5,"L",-10,799989.4,"h",-105.90576171875,"v",21.2,"h",105.90576171875,"L",-5,8e5,"z"])}))}));describe("Reference Line must be visible if alwaysVisible attribute is true",(function(){var refLine,canvas,graphicalElements={};beforeEach((function(){canvas=new _canvas.default;canvas.config={borderConfig:{topBorder:0,leftBorder:0,rightBorder:0,bottomBorder:0},canvasLeft:0,canvasTop:12,canvasHeight:500,canvasWidth:500};refLine=canvas.attachChild(_referenceLine.default,"referenceLine");refLine.addToEnv("smartLabel",new _SmartlabelManager.default(document.body||document.getElementsByTagName("body")[0]));refLine.addToEnv("getStyleDef",getStyleDef);refLine.addToEnv("yScale",yScale);refLine.addGraphicalElement=function(obj){return graphicalElements[obj.label]=obj};refLine.getGraphicalElement=function(label){return graphicalElements[label]}}));afterEach((function(){refLine=undefined;graphicalElements={}}));it("Label should be visible if alwaysVisible attribute is true without hovering",(function(){var formatterFn=function formatterFn(_ref2){var value=_ref2.value;return value.toFixed(8)};refLine.__setDefaultConfig();refLine.configure({yScale:yScale,formatterFn:formatterFn,isHovered:false,referenceLine:{value:50,alwaysVisible:true}});refLine.draw();var a=refLine.getFromEnv("smartLabel").getSize(formatterFn({value:50}));expect(!!a).toBeTruthy()}))}));