UNPKG

@fusioncharts/charts

Version:

JavaScript Data Visualisation Library

1 lines 12.7 kB
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _extends=require("@babel/runtime/helpers/extends");var _core=_interopRequireDefault(require("../../../../fusioncharts/core"));var _index=_interopRequireDefault(require("./index"));var _msline=_interopRequireDefault(require("../../../../../smoke-test/test-sanity/msline.sanity"));var _ignoreCaseExt=_interopRequireDefault(require("../../../../fc-features/src/ignore-case-ext"));var _utility=require("../../../../../smoke-test/test-sanity/utility");var _lib=require("../../../../fc-core/src/lib/");var _common=_interopRequireDefault(require("../../../../../smoke-test/test-sanity/common.sanity"));var chartData=_interopRequireWildcard(require("../../../../../smoke-test/test-data/data-by-chart"));function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,n=new WeakMap;return(_interopRequireWildcard=function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var o,i,f=_extends({},null,{default:e});if(null===e||"object"!=typeof e&&"function"!=typeof e)return f;if(o=t?n:r){if(o.has(e))return o.get(e);o.set(e,f)}for(var _t in e)"default"!==_t&&{}.hasOwnProperty.call(e,_t)&&((i=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,_t))&&(i.get||i.set)?o(f,_t,i):f[_t]=e[_t]);return f})(e,t)}_core.default.addDep(_index.default);_core.default.addDep(_ignoreCaseExt.default);var svgElement,chartName=_index.default.getName(),chartID=chartName.toLowerCase(),doc=window.document;describe("Running common chart tests for "+chartName,(function(){var chart={type:chartID,renderAt:_utility.CONTAINER_ID,width:_utility.initDimensions.width,height:_utility.initDimensions.height,dataFormat:"json",dataSource:{}},config={chartID:chartID,chart:chart,document:doc,chartWrapperId:_utility.CONTAINER_ID};_common.default.forEach((function(test){var itArr;if(test.name&&test.run){it(test.name,(function(done){test.run(config,(function(result){expect(result).toBe(true);done()}))}))}else if(test.iterator){itArr=test.iterator(chart);itArr.forEach((function(subTest){it(subTest.name,(function(done){subTest.run(config,(function(result){expect(result).toBe(true);done()}))}))}))}}))}));describe("Chart basic testing: "+chartName,(function(){var chart,chartObj,itResize,renderData=_msline.default.BASIC.newChart,updateData=_msline.default.BASIC.updateChart;chart={type:chartID,renderAt:_utility.CONTAINER_ID};(0,_lib.extend2)(chart,renderData);chart.dataSource=chart.dataSource?chart.dataSource:chartData[chartID]["default"];chart.dataSource.chart.animation="0";beforeEach((function(){chartObj=(0,_utility.setup)(_core.default,chart)}));afterEach((function(){if(chartObj&&!chartObj.disposed)chartObj.dispose()}));it("Rendered chart validation passes",(function(done){expect(chartObj).toBeDefined();var renderComplete=function renderComplete(){var response=_msline.default.BASIC.validate(chartObj);expect(response.flag).toBe(true,response.messages.join(" && "));done()};chartObj.render();chartObj.addEventListener("renderComplete",renderComplete)}));it("Chart update passes",(function(done){expect(chartObj).toBeDefined();var called=0;var renderComplete=function renderComplete(){if(called===0){called++;chartObj.setChartData(updateData||chart.dataSource,"json")}else if(called===1){var response=_msline.default.BASIC.updateValidate(chartObj);expect(response.flag).toBe(true,response.messages.join(" && "));done()}};chartObj.addEventListener("renderComplete",renderComplete);chartObj.render()}));itResize=function itResize(resizeDimensions){it("Chart resize passes for "+resizeDimensions.width+" x "+resizeDimensions.height,(function(done){expect(chartObj).toBeDefined();var renderComplete=function renderComplete(){var response=_msline.default.BASIC.resizeValidate(chartObj);expect(response.flag).toBe(true,response.messages.join(" && "));done()};chartObj.addEventListener("renderComplete",renderComplete);chartObj.render((function(){chartObj.resizeTo(resizeDimensions.width,resizeDimensions.height)}))}))};for(var index=0;index<_utility.resizeDimensions.length;index++){itResize(_utility.resizeDimensions[index])}}));describe("Chart EI testing: "+_index.default.getName(),(function(){var chart,chartObj,eiMethods,renderData=_msline.default.EI.newChart;chart={type:chartID,renderAt:_utility.CONTAINER_ID};(0,_lib.extend2)(chart,renderData);chart.dataSource=chart.dataSource?chart.dataSource:chartData[chartID]["default"];chart.dataSource.chart.animation="0";beforeEach((function(){chartObj=(0,_utility.setup)(_core.default,chart)}));afterEach((function(){if(chartObj&&!chartObj.disposed)chartObj.dispose()}));eiMethods=function eiMethods(methodObj){it(methodObj.name,(function(done){expect(chartObj).toBeDefined();var renderComplete=function renderComplete(){svgElement=(0,_utility.getSVG)(chartObj);methodObj.fn(svgElement,chartObj,(function(result){expect(result).toBe(true);done()}))};chartObj.addEventListener("renderComplete",renderComplete);chartObj.render()}))};for(var key in _msline.default.EI.methods){if(_msline.default.EI.methods.hasOwnProperty(key)){eiMethods(_msline.default.EI.methods[key])}}}));describe("valueFontColor, valueBgColor, valueBorderColor",(function(){var chartObj;afterEach((function(){return chartObj.dispose()}));it("Without valueFontColor, valueBgColor and valueBorderColor, chart should render normally",(function(done){chartObj=(0,_utility.setup)(_core.default,{type:chartID,renderAt:_utility.CONTAINER_ID,width:600,height:350,dataSource:{chart:{showvalues:"1",caption:"Market Share Analysis",subcaption:"2009",numberprefix:"$",xaxisname:"Market Segment",yaxisname:"Market Share",legendcaption:"Manufacturer",animation:"0"},categories:[{category:[{label:"Desktop"},{label:"Laptop"}]}],dataset:[{seriesname:"A",data:[{value:"335000"},{value:"225100"}]},{seriesname:"B",data:[{value:"215000"},{value:"198000"}]},{seriesname:"C",data:[{value:"298000"},{value:"109300"}]}]}});chartObj.addEventListener("renderComplete",(function(){var dataLabelGroup=document.querySelectorAll('[class$="fusioncharts-datalabels"]')[1],rects=dataLabelGroup.getElementsByTagName("rect"),texts=dataLabelGroup.getElementsByTagName("text");expect(rects.length).toBe(0);expect(texts.length).toBe(2);expect(texts[0].getAttribute("fill")).toBe("#555555");expect(texts[1].getAttribute("fill")).toBe("#555555");done()}));chartObj.render()}));it("valueFontColor, valueBgColor and valueBorderColor should work from dataset level",(function(done){chartObj=(0,_utility.setup)(_core.default,{type:chartID,renderAt:_utility.CONTAINER_ID,width:600,height:350,dataSource:{chart:{showvalues:"1",caption:"Market Share Analysis",subcaption:"2009",numberprefix:"$",xaxisname:"Market Segment",yaxisname:"Market Share",legendcaption:"Manufacturer",animation:"0"},categories:[{category:[{label:"Desktop"},{label:"Laptop"}]}],dataset:[{seriesname:"A",valuefontcolor:"0000ff",valuebgcolor:"fff000",valuebordercolor:"ff0000",data:[{value:"335000"},{value:"225100"}]},{seriesname:"B",data:[{value:"215000"},{value:"198000"}]},{seriesname:"C",data:[{value:"298000"},{value:"109300"}]}]}});chartObj.addEventListener("renderComplete",(function(){var dataLabelGroup=document.querySelectorAll('[class$="fusioncharts-datalabels"]')[1],rects=dataLabelGroup.getElementsByTagName("rect"),texts=dataLabelGroup.getElementsByTagName("text");expect(rects.length).toBe(2);expect(texts.length).toBe(2);expect(rects[0].getAttribute("fill")).toBe("#fff000");expect(rects[0].getAttribute("stroke")).toBe("#ff0000");expect(rects[1].getAttribute("fill")).toBe("#fff000");expect(rects[1].getAttribute("stroke")).toBe("#ff0000");expect(texts[0].getAttribute("fill")).toBe("#0000ff");expect(texts[1].getAttribute("fill")).toBe("#0000ff");done()}));chartObj.render()}));it("valueFontColor, valueBgColor and valueBorderColor should work from data level",(function(done){chartObj=(0,_utility.setup)(_core.default,{type:chartID,renderAt:_utility.CONTAINER_ID,width:600,height:350,dataSource:{chart:{showvalues:"1",caption:"Market Share Analysis",subcaption:"2009",numberprefix:"$",xaxisname:"Market Segment",yaxisname:"Market Share",legendcaption:"Manufacturer",animation:"0"},categories:[{category:[{label:"Desktop"},{label:"Laptop"}]}],dataset:[{seriesname:"A",data:[{value:"335000",valuefontcolor:"0000ff",valuebgcolor:"fff000",valuebordercolor:"ff0000"},{value:"225100"}]},{seriesname:"B",data:[{value:"215000"},{value:"198000"}]},{seriesname:"C",data:[{value:"298000"},{value:"109300"}]}]}});chartObj.addEventListener("renderComplete",(function(){var dataLabelGroup=document.querySelectorAll('[class$="fusioncharts-datalabels"]')[1],rects=dataLabelGroup.getElementsByTagName("rect"),texts=dataLabelGroup.getElementsByTagName("text");expect(rects.length).toBe(1);expect(texts.length).toBe(2);expect(rects[0].getAttribute("fill")).toBe("#fff000");expect(rects[0].getAttribute("stroke")).toBe("#ff0000");expect(texts[0].getAttribute("fill")).toBe("#0000ff");expect(texts[1].getAttribute("fill")).toBe("#555555");done()}));chartObj.render()}));it("valueFontColor, valueBgColor and valueBorderColor at data level should overwrite same attributes from dataset level",(function(done){chartObj=(0,_utility.setup)(_core.default,{type:chartID,renderAt:_utility.CONTAINER_ID,width:600,height:350,dataSource:{chart:{showvalues:"1",caption:"Market Share Analysis",subcaption:"2009",numberprefix:"$",xaxisname:"Market Segment",yaxisname:"Market Share",legendcaption:"Manufacturer",animation:"0"},categories:[{category:[{label:"Desktop"},{label:"Laptop"}]}],dataset:[{seriesname:"A",valuefontcolor:"0000ff",valuebgcolor:"fff000",valuebordercolor:"ff0000",data:[{value:"335000",valuefontcolor:"ff0000",valuebgcolor:"ffffff",valuebordercolor:"000000"},{value:"225100"}]},{seriesname:"B",data:[{value:"215000"},{value:"198000"}]},{seriesname:"C",data:[{value:"298000"},{value:"109300"}]}]}});chartObj.addEventListener("renderComplete",(function(){var dataLabelGroup=document.querySelectorAll('[class$="fusioncharts-datalabels"]')[1],rects=dataLabelGroup.getElementsByTagName("rect"),texts=dataLabelGroup.getElementsByTagName("text");expect(rects.length).toBe(2);expect(texts.length).toBe(2);expect(rects[0].getAttribute("fill")).toBe("#ffffff");expect(rects[0].getAttribute("stroke")).toBe("#000000");expect(rects[1].getAttribute("fill")).toBe("#fff000");expect(rects[1].getAttribute("stroke")).toBe("#ff0000");expect(texts[0].getAttribute("fill")).toBe("#ff0000");expect(texts[1].getAttribute("fill")).toBe("#0000ff");done()}));chartObj.render()}));it("valueFontColor, valueBgColor and valueBorderColor at data level should overwrite same attributes from dataset as well as chart level",(function(done){chartObj=(0,_utility.setup)(_core.default,{type:chartID,renderAt:_utility.CONTAINER_ID,width:600,height:350,dataSource:{chart:{showvalues:"1",caption:"Market Share Analysis",subcaption:"2009",numberprefix:"$",xaxisname:"Market Segment",yaxisname:"Market Share",legendcaption:"Manufacturer",valuefontcolor:"00ff00",valuebgcolor:"0000ff",valuebordercolor:"fff000",animation:"0"},categories:[{category:[{label:"Desktop"},{label:"Laptop"}]}],dataset:[{seriesname:"A",valuefontcolor:"0000ff",valuebgcolor:"fff000",valuebordercolor:"ff0000",data:[{value:"335000",valuefontcolor:"ff0000",valuebgcolor:"ffffff",valuebordercolor:"000000"},{value:"225100"}]},{seriesname:"B",data:[{value:"215000"},{value:"198000"}]},{seriesname:"C",data:[{value:"298000"},{value:"109300"}]}]}});chartObj.addEventListener("renderComplete",(function(){var dataLabelGroup=document.querySelectorAll('[class$="fusioncharts-datalabels"]')[1],rects=dataLabelGroup.getElementsByTagName("rect"),texts=dataLabelGroup.getElementsByTagName("text");expect(rects.length).toBe(2);expect(texts.length).toBe(2);expect(rects[0].getAttribute("fill")).toBe("#ffffff");expect(rects[0].getAttribute("stroke")).toBe("#000000");expect(rects[1].getAttribute("fill")).toBe("#fff000");expect(rects[1].getAttribute("stroke")).toBe("#ff0000");expect(texts[0].getAttribute("fill")).toBe("#ff0000");expect(texts[1].getAttribute("fill")).toBe("#0000ff");dataLabelGroup=document.querySelectorAll('[class$="fusioncharts-datalabels"]')[2];rects=dataLabelGroup.getElementsByTagName("rect");texts=dataLabelGroup.getElementsByTagName("text");expect(rects.length).toBe(2);expect(texts.length).toBe(2);expect(rects[0].getAttribute("fill")).toBe("#0000ff");expect(rects[0].getAttribute("stroke")).toBe("#fff000");expect(rects[1].getAttribute("fill")).toBe("#0000ff");expect(rects[1].getAttribute("stroke")).toBe("#fff000");expect(texts[0].getAttribute("fill")).toBe("#00ff00");expect(texts[1].getAttribute("fill")).toBe("#00ff00");done()}));chartObj.render()}))}));