UNPKG

@figlinq/react-chart-editor

Version:
2 lines 5.96 kB
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(e,r,t){return(r=_toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==typeof i?i:i+""}function _toPrimitive(t,r){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}import Dropdown from"../../widgets/Dropdown";import TraceSelector from"../TraceSelector";import{PlotlySection}from"../../containers";import{TestEditor,fixtures,plotly,mount}from"../../../lib/test-utils";import{connectTraceToPlot}from"../../../lib";import{jsx as _jsx}from"react/jsx-runtime";describe("TraceSelector",()=>{const TraceSection=connectTraceToPlot(PlotlySection);it("sets mode to markers if trace scatter, no data or mode provided",()=>{const editorProps=_objectSpread(_objectSpread({},fixtures.scatter({data:[{mode:null,xsrc:null,ysrc:null}]})),{},{onUpdate:jest.fn()});const wrapper=mount(_jsx(TestEditor,_objectSpread(_objectSpread({},editorProps),{},{plotly:plotly,children:_jsx(TraceSection,{traceIndexes:[0],children:_jsx(TraceSelector,{attr:"type"})})}))).find(TraceSelector);const innerDropdown=wrapper.find(Dropdown);expect(innerDropdown.prop("value")).toEqual("scatter")});it("if no data provided, but mode is provided, displays correct trace type",()=>{const editorProps=_objectSpread(_objectSpread({},fixtures.scatter({data:[{mode:"lines+markers",xsrc:null,ysrc:null}]})),{},{onUpdate:jest.fn()});const wrapper=mount(_jsx(TestEditor,_objectSpread(_objectSpread({},editorProps),{},{plotly:plotly,children:_jsx(TraceSection,{traceIndexes:[0],children:_jsx(TraceSelector,{attr:"type"})})}))).find(TraceSelector);const innerDropdown=wrapper.find(Dropdown);expect(innerDropdown.prop("value")).toEqual("line")});it("if data provided, but no mode is provided, chooses mode according to fullData",()=>{const editorProps=_objectSpread(_objectSpread({},fixtures.scatter()),{},{onUpdate:jest.fn()});expect(!editorProps.graphDiv.data[0].mode).toBe(true);expect(editorProps.graphDiv._fullData[0].mode).toBe("lines+markers");const wrapper=mount(_jsx(TestEditor,_objectSpread(_objectSpread({},editorProps),{},{plotly:plotly,children:_jsx(TraceSection,{traceIndexes:[0],children:_jsx(TraceSelector,{attr:"type"})})}))).find(TraceSelector);const innerDropdown=wrapper.find(Dropdown);expect(innerDropdown.prop("value")).toEqual("line")});it("interprets scatter + fill as type=area",()=>{const editorProps=_objectSpread(_objectSpread({},fixtures.scatter({data:[{fill:"tonexty"}]})),{},{onUpdate:jest.fn()});const wrapper=mount(_jsx(TestEditor,_objectSpread(_objectSpread({},editorProps),{},{plotly:plotly,children:_jsx(TraceSection,{traceIndexes:[0],children:_jsx(TraceSelector,{attr:"type"})})}))).find(TraceSelector);const innerDropdown=wrapper.find(Dropdown);expect(innerDropdown.prop("value")).toEqual("area")});it("interprets scatter + mode=lines as type=line",()=>{const editorProps=_objectSpread(_objectSpread({},fixtures.scatter({data:[{mode:"lines"}]})),{},{onUpdate:jest.fn()});const wrapper=mount(_jsx(TestEditor,_objectSpread(_objectSpread({},editorProps),{},{plotly:plotly,children:_jsx(TraceSection,{traceIndexes:[0],children:_jsx(TraceSelector,{attr:"type"})})}))).find(TraceSelector);const innerDropdown=wrapper.find(Dropdown);expect(innerDropdown.prop("value")).toEqual("line")});it("interprets scatter + mode=lines+markers as type=line",()=>{const editorProps=_objectSpread(_objectSpread({},fixtures.scatter({data:[{mode:"lines+markers"}]})),{},{onUpdate:jest.fn()});const wrapper=mount(_jsx(TestEditor,_objectSpread(_objectSpread({},editorProps),{},{plotly:plotly,children:_jsx(TraceSection,{traceIndexes:[0],children:_jsx(TraceSelector,{attr:"type"})})}))).find(TraceSelector);const innerDropdown=wrapper.find(Dropdown);expect(innerDropdown.prop("value")).toEqual("line")});it("updates type=scatter mode=lines when type=line",()=>{const beforeUpdateTraces=jest.fn();const editorProps=_objectSpread(_objectSpread({},fixtures.scatter({data:[{type:"scatter",mode:"markers"}]})),{},{beforeUpdateTraces,plotly});const wrapper=mount(_jsx(TestEditor,_objectSpread(_objectSpread({},editorProps),{},{children:_jsx(TraceSection,{traceIndexes:[0],children:_jsx(TraceSelector,{attr:"type"})})}))).find(TraceSelector);const innerDropdown=wrapper.find(Dropdown);innerDropdown.prop("onChange")("line");const 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",()=>{const beforeUpdateTraces=jest.fn();const editorProps=_objectSpread(_objectSpread({},fixtures.scatter({data:[{type:"scatter",mode:"markers"}]})),{},{beforeUpdateTraces,plotly});const wrapper=mount(_jsx(TestEditor,_objectSpread(_objectSpread({},editorProps),{},{children:_jsx(TraceSection,{traceIndexes:[0],children:_jsx(TraceSelector,{attr:"type"})})}))).find(TraceSelector);const innerDropdown=wrapper.find(Dropdown);innerDropdown.prop("onChange")("area");const payload=beforeUpdateTraces.mock.calls[0][0];expect(payload.update).toEqual({type:"scatter",mode:"lines",stackgroup:1})})}); //# sourceMappingURL=TraceSelector-test.js.map