106 lines
3.7 KiB
TypeScript
106 lines
3.7 KiB
TypeScript
|
|
import { RenderModes } from "constants/WidgetConstants";
|
||
|
|
import * as editorSelectors from "selectors/editorSelectors";
|
||
|
|
import { buildChildren } from "test/factories/WidgetFactoryUtils";
|
||
|
|
import { renderAppsmithCanvas } from "./CanvasFactory";
|
||
|
|
import { render } from "test/testUtils";
|
||
|
|
import React from "react";
|
||
|
|
import store from "store";
|
||
|
|
import type { WidgetProps } from "widgets/BaseWidget";
|
||
|
|
import { LayoutSystemTypes } from "./types";
|
||
|
|
import * as layoutSystemSelectors from "selectors/layoutSystemSelectors";
|
||
|
|
|
||
|
|
describe("Layout Based Canvas aka Canvas Widget Test cases", () => {
|
||
|
|
it("Render Fixed Layout Editor Canvas when layoutSystemType/appPositioningType is FIXED and render mode is CANVAS/PAGE", () => {
|
||
|
|
const children = buildChildren([
|
||
|
|
{
|
||
|
|
type: "CANVAS_WIDGET",
|
||
|
|
parentId: "xxxxxx",
|
||
|
|
children: [],
|
||
|
|
widgetId: "yyyyyy",
|
||
|
|
dynamicHeight: "FIXED",
|
||
|
|
},
|
||
|
|
]);
|
||
|
|
if (children) {
|
||
|
|
const canvasProps = children[0];
|
||
|
|
jest
|
||
|
|
.spyOn(editorSelectors, "getRenderMode")
|
||
|
|
.mockImplementation(() => RenderModes.CANVAS);
|
||
|
|
jest
|
||
|
|
.spyOn(layoutSystemSelectors, "getLayoutSystemType")
|
||
|
|
.mockImplementation(() => LayoutSystemTypes.FIXED);
|
||
|
|
const state = store.getState();
|
||
|
|
const customState = {
|
||
|
|
...state,
|
||
|
|
entities: {
|
||
|
|
...state.entities,
|
||
|
|
canvasWidgets: {
|
||
|
|
xxxxxx: {} as WidgetProps,
|
||
|
|
yyyyyy: {} as WidgetProps,
|
||
|
|
},
|
||
|
|
},
|
||
|
|
};
|
||
|
|
const editorCanvas = render(<>{renderAppsmithCanvas(canvasProps)}</>, {
|
||
|
|
initialState: customState,
|
||
|
|
});
|
||
|
|
const editorDropTarget =
|
||
|
|
editorCanvas.container.getElementsByClassName("t--drop-target")[0];
|
||
|
|
expect(editorDropTarget).toBeTruthy();
|
||
|
|
jest
|
||
|
|
.spyOn(editorSelectors, "getRenderMode")
|
||
|
|
.mockImplementation(() => RenderModes.PAGE);
|
||
|
|
const viewerCanvas = render(<>{renderAppsmithCanvas(canvasProps)}</>, {
|
||
|
|
initialState: customState,
|
||
|
|
});
|
||
|
|
const viewerDropTarget =
|
||
|
|
viewerCanvas.container.getElementsByClassName("t--drop-target")[0];
|
||
|
|
expect(viewerDropTarget).toBeFalsy();
|
||
|
|
}
|
||
|
|
});
|
||
|
|
it("Render Auto Layout Editor Canvas when layoutSystemType/appPositioningType is AUTO and render mode is CANVAS/PAGE", () => {
|
||
|
|
const children = buildChildren([
|
||
|
|
{
|
||
|
|
type: "CANVAS_WIDGET",
|
||
|
|
parentId: "xxxxxx",
|
||
|
|
children: [],
|
||
|
|
widgetId: "yyyyyy",
|
||
|
|
dynamicHeight: "FIXED",
|
||
|
|
},
|
||
|
|
]);
|
||
|
|
if (children) {
|
||
|
|
const canvasProps = children[0];
|
||
|
|
jest
|
||
|
|
.spyOn(editorSelectors, "getRenderMode")
|
||
|
|
.mockImplementation(() => RenderModes.CANVAS);
|
||
|
|
jest
|
||
|
|
.spyOn(layoutSystemSelectors, "getLayoutSystemType")
|
||
|
|
.mockImplementation(() => LayoutSystemTypes.AUTO);
|
||
|
|
const state = store.getState();
|
||
|
|
const customState = {
|
||
|
|
...state,
|
||
|
|
entities: {
|
||
|
|
...state.entities,
|
||
|
|
canvasWidgets: {
|
||
|
|
xxxxxx: {} as WidgetProps,
|
||
|
|
yyyyyy: {} as WidgetProps,
|
||
|
|
},
|
||
|
|
},
|
||
|
|
};
|
||
|
|
const editorCanvas = render(<>{renderAppsmithCanvas(canvasProps)}</>, {
|
||
|
|
initialState: customState,
|
||
|
|
});
|
||
|
|
const editorDropTarget =
|
||
|
|
editorCanvas.container.getElementsByClassName("t--drop-target")[0];
|
||
|
|
expect(editorDropTarget).toBeTruthy();
|
||
|
|
jest
|
||
|
|
.spyOn(editorSelectors, "getRenderMode")
|
||
|
|
.mockImplementation(() => RenderModes.PAGE);
|
||
|
|
const viewerCanvas = render(<>{renderAppsmithCanvas(canvasProps)}</>, {
|
||
|
|
initialState: customState,
|
||
|
|
});
|
||
|
|
const viewerDropTarget =
|
||
|
|
viewerCanvas.container.getElementsByClassName("t--drop-target")[0];
|
||
|
|
expect(viewerDropTarget).toBeFalsy();
|
||
|
|
}
|
||
|
|
});
|
||
|
|
});
|