50 lines
2.1 KiB
JavaScript
50 lines
2.1 KiB
JavaScript
import { createSpreadsheetFromGraphView } from "@documents_spreadsheet/../tests/helpers/chart_helpers";
|
|
import { defineDocumentSpreadsheetModels } from "@documents_spreadsheet/../tests/helpers/data";
|
|
import { describe, expect, getFixture, test } from "@odoo/hoot";
|
|
import { animationFrame } from "@odoo/hoot-mock";
|
|
import { createCarousel } from "@spreadsheet/../tests/helpers/commands";
|
|
import { contains } from "@web/../tests/web_test_helpers";
|
|
|
|
defineDocumentSpreadsheetModels();
|
|
describe.current.tags("desktop");
|
|
|
|
test("Can add an odoo chart to a carousel figure", async () => {
|
|
const { model } = await createSpreadsheetFromGraphView();
|
|
const sheetId = model.getters.getActiveSheetId();
|
|
const chartId = model.getters.getChartIds(sheetId)[0];
|
|
createCarousel(model, { items: [] }, "carouselId");
|
|
await animationFrame();
|
|
const fixture = getFixture();
|
|
|
|
expect(model.getters.getFigures(sheetId)).toHaveLength(2);
|
|
|
|
const [chartFigure, carouselFigure] = [...fixture.querySelectorAll(".o-figure")];
|
|
await contains(chartFigure).dragAndDrop(carouselFigure, { position: "top" });
|
|
|
|
expect(model.getters.getFigures(sheetId)).toHaveLength(1);
|
|
expect(model.getters.getFigures(sheetId)[0].tag).toBe("carousel");
|
|
expect(model.getters.getCarousel("carouselId").items).toEqual([
|
|
{ type: "chart", chartId: chartId },
|
|
]);
|
|
expect(model.getters.getChartDefinition(chartId)).toMatchObject({ type: "odoo_bar" });
|
|
});
|
|
|
|
test("Link to menu id is preserved when adding a chart to a carousel", async () => {
|
|
const { model } = await createSpreadsheetFromGraphView();
|
|
createCarousel(model, { items: [] }, "carouselId");
|
|
await animationFrame();
|
|
const fixture = getFixture();
|
|
|
|
const sheetId = model.getters.getActiveSheetId();
|
|
const chartId = model.getters.getChartIds(sheetId)[0];
|
|
model.dispatch("LINK_ODOO_MENU_TO_CHART", {
|
|
chartId,
|
|
odooMenuId: 1,
|
|
});
|
|
|
|
const [chartFigure, carouselFigure] = [...fixture.querySelectorAll(".o-figure")];
|
|
await contains(chartFigure).dragAndDrop(carouselFigure, { position: "top" });
|
|
|
|
expect(model.getters.getChartOdooMenu(chartId)?.id).toBe(1);
|
|
});
|