import { DeletePlugin } from "@html_editor/core/delete_plugin";
import { FormatPlugin } from "@html_editor/core/format_plugin";
import { InputPlugin } from "@html_editor/core/input_plugin";
import { LineBreakPlugin } from "@html_editor/core/line_break_plugin";
import { SplitPlugin } from "@html_editor/core/split_plugin";
import { InlineCodePlugin } from "@html_editor/main/inline_code";
import { LinkPlugin } from "@html_editor/main/link/link_plugin";
import { ListPlugin } from "@html_editor/main/list/list_plugin";
import { PositionPlugin } from "@html_editor/main/position_plugin";
import { PowerButtonsPlugin } from "@html_editor/main/power_buttons_plugin";
import { SearchPowerboxPlugin } from "@html_editor/main/powerbox/search_powerbox_plugin";
import { CollaborationSelectionPlugin } from "@html_editor/others/collaboration/collaboration_selection_plugin";
import { describe, expect, test } from "@odoo/hoot";
describe("Implicit plugin dependencies", () => {
test("input as an implicit dependency", async () => {
for (const P of [
DeletePlugin,
FormatPlugin,
InlineCodePlugin,
LineBreakPlugin,
LinkPlugin,
ListPlugin,
SearchPowerboxPlugin,
SplitPlugin,
]) {
// input dependency through the "beforeinput_handlers" and
// "input_handlers" resources. This dependency was added because the
// plugin is heavily dependent on inputs handling and will appear
// broken without the appropriate handlers.
expect(P.dependencies).toInclude(InputPlugin.id);
}
});
test("position as an implicit dependency", async () => {
for (const P of [PowerButtonsPlugin, CollaborationSelectionPlugin]) {
// position dependency through the "layout_geometry_change_handlers"
// resource. This dependency was added because the plugin is
// heavily dependent on layout changes and will appear broken
// without the appropriate handler.
expect(P.dependencies).toInclude(PositionPlugin.id);
}
});
});