Fixed the group move test by fixing the app (#2625)
This commit is contained in:
parent
5fd94d12b8
commit
5a18c76d75
8 changed files with 67 additions and 38 deletions
|
@ -111,28 +111,31 @@ describe("Group test", () => {
|
|||
masthead.checkNotificationMessage("Group deleted");
|
||||
});
|
||||
|
||||
// This test doesn't seem to do anything. The "Move to" dialog never opens.
|
||||
// But the test somehow still passes.
|
||||
it("Should move group to root", async () => {
|
||||
const groups = ["group1", "group2"];
|
||||
groupModal
|
||||
.open("no-groups-in-this-realm-empty-action")
|
||||
.fillGroupForm(groups[0])
|
||||
.clickCreate();
|
||||
groupModal
|
||||
.open("openCreateGroupModal")
|
||||
.fillGroupForm(groups[1])
|
||||
.clickCreate();
|
||||
listingPage.clickRowDetails(groups[0]).clickDetailMenu("Move to");
|
||||
describe("Move groups", () => {
|
||||
const groups = ["group", "group1", "group2"];
|
||||
before(() => adminClient.createSubGroups(groups));
|
||||
|
||||
moveGroupModal.clickRoot().clickMove();
|
||||
sidebarPage.goToGroups();
|
||||
after(() => adminClient.deleteGroups());
|
||||
|
||||
new GroupDetailPage().checkListSubGroup(groups);
|
||||
listingPage.deleteItem(groups[0]);
|
||||
modalUtils.checkModalTitle("Delete group?").confirmModal();
|
||||
listingPage.deleteItem(groups[1]);
|
||||
modalUtils.checkModalTitle("Delete group?").confirmModal();
|
||||
it("Should move group to root", () => {
|
||||
listingPage.goToItemDetails(groups[0]);
|
||||
sidebarPage.waitForPageLoad();
|
||||
listingPage.clickRowDetails(groups[1]).clickDetailMenu("Move to");
|
||||
|
||||
moveGroupModal.clickMove();
|
||||
sidebarPage.goToGroups();
|
||||
|
||||
new GroupDetailPage().checkListSubGroup(groups.slice(0, -1));
|
||||
});
|
||||
|
||||
it("Should move group back", () => {
|
||||
listingPage.clickRowDetails(groups[1]).clickDetailMenu("Move to");
|
||||
|
||||
moveGroupModal.clickRow(groups[0]).clickMove();
|
||||
sidebarPage.goToGroups();
|
||||
|
||||
new GroupDetailPage().checkListSubGroup(["group"]);
|
||||
});
|
||||
});
|
||||
|
||||
it("Group search", () => {
|
||||
|
|
|
@ -109,8 +109,11 @@ export const Group = () => {
|
|||
ok: "common:add",
|
||||
}}
|
||||
onConfirm={(groups) => {
|
||||
onChange([...value, ...groups.map(({ id }) => ({ id }))]);
|
||||
setSelectedGroups([...selectedGroups, ...groups]);
|
||||
onChange([
|
||||
...value,
|
||||
...(groups || []).map(({ id }) => ({ id })),
|
||||
]);
|
||||
setSelectedGroups([...selectedGroups, ...(groups || [])]);
|
||||
setOpen(false);
|
||||
}}
|
||||
onClose={() => {
|
||||
|
|
|
@ -34,7 +34,7 @@ export const GroupComponent = ({ name, label, helpText }: ComponentProps) => {
|
|||
ok: "common:select",
|
||||
}}
|
||||
onConfirm={(groups) => {
|
||||
onChange(groups[0].path);
|
||||
onChange(groups?.[0].path);
|
||||
setOpen(false);
|
||||
}}
|
||||
onClose={() => setOpen(false)}
|
||||
|
|
|
@ -27,7 +27,7 @@ export type GroupPickerDialogProps = {
|
|||
type: "selectOne" | "selectMany";
|
||||
filterGroups?: string[];
|
||||
text: { title: string; ok: string };
|
||||
onConfirm: (groups: GroupRepresentation[]) => void;
|
||||
onConfirm: (groups: GroupRepresentation[] | undefined) => void;
|
||||
onClose: () => void;
|
||||
};
|
||||
|
||||
|
@ -131,7 +131,7 @@ export const GroupPickerDialog = ({
|
|||
variant={ModalVariant.small}
|
||||
title={t(text.title, {
|
||||
group1: filterGroups?.[0],
|
||||
group2: currentGroup() ? currentGroup().name : t("root"),
|
||||
group2: navigation.length ? currentGroup().name : t("root"),
|
||||
})}
|
||||
isOpen
|
||||
onClose={onClose}
|
||||
|
@ -142,7 +142,13 @@ export const GroupPickerDialog = ({
|
|||
variant="primary"
|
||||
form="group-form"
|
||||
onClick={() => {
|
||||
onConfirm(type === "selectMany" ? selectedRows : [currentGroup()]);
|
||||
onConfirm(
|
||||
type === "selectMany"
|
||||
? selectedRows
|
||||
: navigation.length
|
||||
? [currentGroup()]
|
||||
: undefined
|
||||
);
|
||||
}}
|
||||
isDisabled={type === "selectMany" && selectedRows.length === 0}
|
||||
>
|
||||
|
@ -242,7 +248,7 @@ export const GroupPickerDialog = ({
|
|||
newSelectedRows = selectedRows.filter(
|
||||
(r) => r.id !== group.id
|
||||
);
|
||||
} else if (group.checked) {
|
||||
} else {
|
||||
newSelectedRows = [
|
||||
...selectedRows,
|
||||
filter === "" ? group : findSubGroup(group, filter),
|
||||
|
|
|
@ -231,18 +231,35 @@ export const GroupTable = () => {
|
|||
onClose={() => setMove(undefined)}
|
||||
onConfirm={async (group) => {
|
||||
try {
|
||||
try {
|
||||
if (group[0].id) {
|
||||
if (group !== undefined) {
|
||||
try {
|
||||
await adminClient.groups.setOrCreateChild(
|
||||
{ id: group[0].id },
|
||||
{ id: group[0].id! },
|
||||
move
|
||||
);
|
||||
} else {
|
||||
await adminClient.groups.create(move);
|
||||
} catch (error: any) {
|
||||
if (error.response) {
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
} catch (error: any) {
|
||||
if (error.response) {
|
||||
throw error;
|
||||
} else {
|
||||
await adminClient.groups.del({ id: move.id! });
|
||||
const { id } = await adminClient.groups.create({
|
||||
...move,
|
||||
id: undefined,
|
||||
});
|
||||
if (move.subGroups) {
|
||||
await Promise.all(
|
||||
move.subGroups.map((s) =>
|
||||
adminClient.groups.setOrCreateChild(
|
||||
{ id: id! },
|
||||
{
|
||||
...s,
|
||||
id: undefined,
|
||||
}
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
setMove(undefined);
|
||||
|
|
|
@ -120,7 +120,7 @@ export const DefaultsGroupsTab = () => {
|
|||
ok: "common:add",
|
||||
}}
|
||||
onConfirm={(groups) => {
|
||||
addGroups(groups);
|
||||
addGroups(groups || []);
|
||||
toggleGroupPicker();
|
||||
}}
|
||||
onClose={toggleGroupPicker}
|
||||
|
|
|
@ -164,7 +164,7 @@ export const UserForm = ({
|
|||
ok: "users:join",
|
||||
}}
|
||||
onConfirm={(groups) => {
|
||||
user?.id ? addGroups(groups) : addChips(groups);
|
||||
user?.id ? addGroups(groups || []) : addChips(groups || []);
|
||||
setOpen(false);
|
||||
}}
|
||||
onClose={() => setOpen(false)}
|
||||
|
|
|
@ -256,7 +256,7 @@ export const UserGroups = ({ user }: UserGroupsProps) => {
|
|||
}}
|
||||
onClose={() => setOpen(false)}
|
||||
onConfirm={(groups) => {
|
||||
addGroups(groups);
|
||||
addGroups(groups || []);
|
||||
setOpen(false);
|
||||
refresh();
|
||||
}}
|
||||
|
|
Loading…
Reference in a new issue