Skip to content

Commit

Permalink
Test onCanMoveTo
Browse files Browse the repository at this point in the history
  • Loading branch information
mbraak committed Mar 28, 2024
1 parent 10599e5 commit c0d88b6
Showing 1 changed file with 78 additions and 1 deletion.
79 changes: 78 additions & 1 deletion src/playwright/playwright.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,18 @@ interface InitTreeOptions {
autoOpen?: number;
dragAndDrop?: boolean;
onCanMove?: boolean;
onCanMoveTo?: boolean;
}

const initTree = async (
page: Page,
{ autoOpen, dragAndDrop, onCanMove }: InitTreeOptions,
{ autoOpen, dragAndDrop, onCanMove, onCanMoveTo }: InitTreeOptions,
) => {
await page.evaluate(`
const onCanMove = (node) => node.name !== "Herrerasaurians";
const onCanMoveTo = (node, targetNode) => targetNode.name !== "Ornithischians";
const $tree = jQuery("#tree1");
$tree.tree({
Expand All @@ -44,6 +47,7 @@ const initTree = async (
data: ExampleData.exampleData,
dragAndDrop: ${dragAndDrop || false},
onCanMove: ${onCanMove ? "onCanMove" : "null"},
onCanMoveTo: ${onCanMoveTo ? "onCanMoveTo" : "null"},
startDndDelay: 100,
});
`);
Expand Down Expand Up @@ -234,6 +238,79 @@ test.describe("with dragAndDrop", () => {
}),
]);
});

test("onCanMoveTo prevents move to a node", async ({ baseURL, page }) => {
await initPage(page, baseURL);
await initTree(page, { dragAndDrop: true, onCanMoveTo: true });

await dragAndDrop(page, "Herrerasaurians", "Ornithischians");

const structure = await getTreeStructure(page);

expect(structure).toEqual([
expect.objectContaining({
name: "Saurischia",
children: [
expect.objectContaining({ name: "Herrerasaurians" }),
expect.objectContaining({ name: "Theropods" }),
expect.objectContaining({ name: "Sauropodomorphs" }),
],
}),
expect.objectContaining({
name: "Ornithischians",
children: [
expect.objectContaining({ name: "Heterodontosaurids" }),
expect.objectContaining({ name: "Thyreophorans" }),
expect.objectContaining({ name: "Ornithopods" }),
expect.objectContaining({
name: "Pachycephalosaurians",
}),
expect.objectContaining({ name: "Ceratopsians" }),
],
}),
]);
});

test("onCanMoveTo doesn't prevent move to another node", async ({
baseURL,
page,
}) => {
await initPage(page, baseURL);
await initTree(page, { dragAndDrop: true, onCanMoveTo: true });

await dragAndDrop(page, "Herrerasaurians", "Heterodontosaurids");

const structure = await getTreeStructure(page);

expect(structure).toEqual([
expect.objectContaining({
name: "Saurischia",
children: [
expect.objectContaining({ name: "Theropods" }),
expect.objectContaining({ name: "Sauropodomorphs" }),
],
}),
expect.objectContaining({
name: "Ornithischians",
children: [
expect.objectContaining({
name: "Heterodontosaurids",
children: [
expect.objectContaining({
name: "Herrerasaurians",
}),
],
}),
expect.objectContaining({ name: "Thyreophorans" }),
expect.objectContaining({ name: "Ornithopods" }),
expect.objectContaining({
name: "Pachycephalosaurians",
}),
expect.objectContaining({ name: "Ceratopsians" }),
],
}),
]);
});
});

test.describe("autoscroll when the window is scrollable", () => {
Expand Down

0 comments on commit c0d88b6

Please sign in to comment.