Files
enterprise-addons/documents_spreadsheet/static/tests/chart/carousel_figure.test.js
T

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);
});