UNPKG

react-chart-editor

Version:

plotly.js chart editor react component UI

2 lines 7.48 kB
"use strict";var _Dropdown=_interopRequireDefault(require("../../widgets/Dropdown"));var _react=_interopRequireDefault(require("react"));var _TraceSelector=_interopRequireDefault(require("../TraceSelector"));var _containers=require("../../containers");var _testUtils=require("../../../lib/test-utils");var _lib=require("../../../lib");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _extends(){_extends=Object.assign?Object.assign.bind():function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};return _extends.apply(this,arguments)}function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,o)}return t}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach(function(r){_defineProperty(e,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})}return e}function _defineProperty(obj,key,value){key=_toPropertyKey(key);if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _toPropertyKey(arg){var key=_toPrimitive(arg,"string");return typeof key==="symbol"?key:String(key)}function _toPrimitive(input,hint){if(typeof input!=="object"||input===null)return input;var prim=input[Symbol.toPrimitive];if(prim!==undefined){var res=prim.call(input,hint||"default");if(typeof res!=="object")return res;throw new TypeError("@@toPrimitive must return a primitive value.")}return(hint==="string"?String:Number)(input)}var __signature__=typeof reactHotLoaderGlobal!=="undefined"?reactHotLoaderGlobal.default.signature:function(a){return a};describe("TraceSelector",function(){var TraceSection=(0,_lib.connectTraceToPlot)(_containers.PlotlySection);it("sets mode to markers if trace scatter, no data or mode provided",function(){var editorProps=_objectSpread(_objectSpread({},_testUtils.fixtures.scatter({data:[{mode:null,xsrc:null,ysrc:null}]})),{},{onUpdate:jest.fn()});var wrapper=(0,_testUtils.mount)(_react.default.createElement(_testUtils.TestEditor,_extends({},editorProps,{plotly:_testUtils.plotly}),_react.default.createElement(TraceSection,{traceIndexes:[0]},_react.default.createElement(_TraceSelector.default,{attr:"type"})))).find(_TraceSelector.default);var innerDropdown=wrapper.find(_Dropdown.default);expect(innerDropdown.prop("value")).toEqual("scatter")});it("if no data provided, but mode is provided, displays correct trace type",function(){var editorProps=_objectSpread(_objectSpread({},_testUtils.fixtures.scatter({data:[{mode:"lines+markers",xsrc:null,ysrc:null}]})),{},{onUpdate:jest.fn()});var wrapper=(0,_testUtils.mount)(_react.default.createElement(_testUtils.TestEditor,_extends({},editorProps,{plotly:_testUtils.plotly}),_react.default.createElement(TraceSection,{traceIndexes:[0]},_react.default.createElement(_TraceSelector.default,{attr:"type"})))).find(_TraceSelector.default);var innerDropdown=wrapper.find(_Dropdown.default);expect(innerDropdown.prop("value")).toEqual("line")});it("if data provided, but no mode is provided, chooses mode according to fullData",function(){var editorProps=_objectSpread(_objectSpread({},_testUtils.fixtures.scatter()),{},{onUpdate:jest.fn()});expect(!editorProps.graphDiv.data[0].mode).toBe(true);expect(editorProps.graphDiv._fullData[0].mode).toBe("lines+markers");var wrapper=(0,_testUtils.mount)(_react.default.createElement(_testUtils.TestEditor,_extends({},editorProps,{plotly:_testUtils.plotly}),_react.default.createElement(TraceSection,{traceIndexes:[0]},_react.default.createElement(_TraceSelector.default,{attr:"type"})))).find(_TraceSelector.default);var innerDropdown=wrapper.find(_Dropdown.default);expect(innerDropdown.prop("value")).toEqual("line")});it("interprets scatter + fill as type=area",function(){var editorProps=_objectSpread(_objectSpread({},_testUtils.fixtures.scatter({data:[{fill:"tonexty"}]})),{},{onUpdate:jest.fn()});var wrapper=(0,_testUtils.mount)(_react.default.createElement(_testUtils.TestEditor,_extends({},editorProps,{plotly:_testUtils.plotly}),_react.default.createElement(TraceSection,{traceIndexes:[0]},_react.default.createElement(_TraceSelector.default,{attr:"type"})))).find(_TraceSelector.default);var innerDropdown=wrapper.find(_Dropdown.default);expect(innerDropdown.prop("value")).toEqual("area")});it("interprets scatter + mode=lines as type=line",function(){var editorProps=_objectSpread(_objectSpread({},_testUtils.fixtures.scatter({data:[{mode:"lines"}]})),{},{onUpdate:jest.fn()});var wrapper=(0,_testUtils.mount)(_react.default.createElement(_testUtils.TestEditor,_extends({},editorProps,{plotly:_testUtils.plotly}),_react.default.createElement(TraceSection,{traceIndexes:[0]},_react.default.createElement(_TraceSelector.default,{attr:"type"})))).find(_TraceSelector.default);var innerDropdown=wrapper.find(_Dropdown.default);expect(innerDropdown.prop("value")).toEqual("line")});it("interprets scatter + mode=lines+markers as type=line",function(){var editorProps=_objectSpread(_objectSpread({},_testUtils.fixtures.scatter({data:[{mode:"lines+markers"}]})),{},{onUpdate:jest.fn()});var wrapper=(0,_testUtils.mount)(_react.default.createElement(_testUtils.TestEditor,_extends({},editorProps,{plotly:_testUtils.plotly}),_react.default.createElement(TraceSection,{traceIndexes:[0]},_react.default.createElement(_TraceSelector.default,{attr:"type"})))).find(_TraceSelector.default);var innerDropdown=wrapper.find(_Dropdown.default);expect(innerDropdown.prop("value")).toEqual("line")});it("updates type=scatter mode=lines when type=line",function(){var beforeUpdateTraces=jest.fn();var editorProps=_objectSpread(_objectSpread({},_testUtils.fixtures.scatter({data:[{type:"scatter",mode:"markers"}]})),{},{beforeUpdateTraces,plotly:_testUtils.plotly});var wrapper=(0,_testUtils.mount)(_react.default.createElement(_testUtils.TestEditor,editorProps,_react.default.createElement(TraceSection,{traceIndexes:[0]},_react.default.createElement(_TraceSelector.default,{attr:"type"})))).find(_TraceSelector.default);var innerDropdown=wrapper.find(_Dropdown.default);innerDropdown.prop("onChange")("line");var payload=beforeUpdateTraces.mock.calls[0][0];expect(payload.update).toEqual({stackgroup:null,mode:"lines",type:"scatter"})});it("updates type=scatter stackgroup=1 when type=area",function(){var beforeUpdateTraces=jest.fn();var editorProps=_objectSpread(_objectSpread({},_testUtils.fixtures.scatter({data:[{type:"scatter",mode:"markers"}]})),{},{beforeUpdateTraces,plotly:_testUtils.plotly});var wrapper=(0,_testUtils.mount)(_react.default.createElement(_testUtils.TestEditor,editorProps,_react.default.createElement(TraceSection,{traceIndexes:[0]},_react.default.createElement(_TraceSelector.default,{attr:"type"})))).find(_TraceSelector.default);var innerDropdown=wrapper.find(_Dropdown.default);innerDropdown.prop("onChange")("area");var payload=beforeUpdateTraces.mock.calls[0][0];expect(payload.update).toEqual({type:"scatter",mode:"lines",stackgroup:1})})}); //# sourceMappingURL=TraceSelector-test.js.map