import React, { useState } from "react";
import { render, screen } from "../utilities/test-utils";
import {
Draggable,
DraggableProvider,
SelectableList,
List,
ListItem,
Card,
} from "playbook-ui";
const testId = "draggable";
const data = [
{
id: "1",
text: "Task 1",
},
{
id: "2",
text: "Task 2",
},
{
id: "3",
text: "Task 3",
},
{
id: "4",
text: "Task 4",
},
];
const DefaultDraggableKit = () => {
const [initialState, setInitialState] = useState(data);
return (
setInitialState(items)}
>
{initialState.map(({ id, text }) => (
))}
);
};
const DraggableKitWithList = () => {
const [initialState, setInitialState] = useState(data);
return (
setInitialState(items)}
>
{initialState.map(({ id, text }) => (
{text}
))}
);
};
const DraggableKitWithSelectableList = () => {
const [initialState, setInitialState] = useState(data);
return (
setInitialState(items)}
>
{initialState.map(({ id, text }) => (
))}
);
};
const DraggableKitWithCard = () => {
const [initialState, setInitialState] = useState(data);
return (
setInitialState(items)}
>
{initialState.map(({ id, text }) => (
{text}
))}
);
};
test("generated default kit and classname", () => {
render();
const kit = screen.getByTestId(testId);
expect(kit).toBeInTheDocument();
expect(kit).toHaveClass("pb_draggable");
});
test("generated Draggable Container", () => {
render();
const kit = screen.getByTestId(testId);
const container = kit.querySelector(".pb_draggable_container");
expect(container).toBeInTheDocument();
});
test("generated Draggable Item", () => {
render();
const kit = screen.getByTestId(testId);
const item = kit.querySelector(".pb_draggable_item");
expect(item).toBeInTheDocument();
});
test("Attached draggable HTML attributes", () => {
render();
const kit = screen.getByTestId(testId);
const item = kit.querySelector(".pb_draggable_item");
expect(item).toHaveAttribute("draggable");
});
test("generated dragHandle with List", () => {
render();
const kit = screen.getByTestId(testId);
const list = kit.querySelector(".pb_list_kit");
expect(list).toBeInTheDocument();
const dragHandle = list.querySelector(".fa-grip-dots-vertical");
expect(dragHandle).toBeInTheDocument();
});
test("generated dragHandle with SelectableList", () => {
render();
const kit = screen.getByTestId(testId);
const selectabellist = kit.querySelector(".pb_selectable_list_kit");
expect(selectabellist).toBeInTheDocument();
const dragHandle = selectabellist.querySelector(".fa-grip-dots-vertical");
expect(dragHandle).toBeInTheDocument();
});
test("generated dragHandle with Card", () => {
render();
const kit = screen.getByTestId(testId);
const card = kit.querySelector(".pb_card_kit_deselected_border_radius_md");
expect(card).toBeInTheDocument();
const dragHandle = card.querySelector(".fa-grip-dots-vertical");
expect(dragHandle).toBeInTheDocument();
});