mirror of
https://github.com/formbricks/formbricks.git
synced 2026-04-24 03:21:20 -05:00
feat: adds multiLanguageSurveys and accessControl license features (#6331)
This commit is contained in:
@@ -169,7 +169,7 @@ describe("CreateProjectModal", () => {
|
||||
open: true,
|
||||
setOpen: vi.fn(),
|
||||
organizationId: "org-123",
|
||||
canDoRoleManagement: true,
|
||||
isAccessControlAllowed: true,
|
||||
};
|
||||
|
||||
beforeEach(() => {
|
||||
@@ -214,7 +214,7 @@ describe("CreateProjectModal", () => {
|
||||
});
|
||||
});
|
||||
|
||||
test("shows team selection when canDoRoleManagement is true and teams exist", async () => {
|
||||
test("shows team selection when isAccessControlAllowed is true and teams exist", async () => {
|
||||
render(<CreateProjectModal {...defaultProps} />);
|
||||
|
||||
await waitFor(() => {
|
||||
@@ -230,8 +230,8 @@ describe("CreateProjectModal", () => {
|
||||
expect(options[1]).toHaveTextContent("Marketing Team");
|
||||
});
|
||||
|
||||
test("hides team selection when canDoRoleManagement is false", async () => {
|
||||
render(<CreateProjectModal {...defaultProps} canDoRoleManagement={false} />);
|
||||
test("hides team selection when isAccessControlAllowed is false", async () => {
|
||||
render(<CreateProjectModal {...defaultProps} isAccessControlAllowed={false} />);
|
||||
|
||||
await waitFor(() => {
|
||||
expect(screen.queryByTestId("multi-select")).not.toBeInTheDocument();
|
||||
|
||||
@@ -44,14 +44,14 @@ interface CreateProjectModalProps {
|
||||
open: boolean;
|
||||
setOpen: (open: boolean) => void;
|
||||
organizationId: string;
|
||||
canDoRoleManagement: boolean;
|
||||
isAccessControlAllowed: boolean;
|
||||
}
|
||||
|
||||
export const CreateProjectModal = ({
|
||||
open,
|
||||
setOpen,
|
||||
organizationId,
|
||||
canDoRoleManagement,
|
||||
isAccessControlAllowed,
|
||||
}: CreateProjectModalProps) => {
|
||||
const { t } = useTranslate();
|
||||
const router = useRouter();
|
||||
@@ -144,7 +144,7 @@ export const CreateProjectModal = ({
|
||||
)}
|
||||
/>
|
||||
|
||||
{canDoRoleManagement && organizationTeams.length > 0 && (
|
||||
{isAccessControlAllowed && organizationTeams.length > 0 && (
|
||||
<FormField
|
||||
control={form.control}
|
||||
name="teamIds"
|
||||
|
||||
@@ -51,7 +51,7 @@ vi.mock("@/modules/projects/components/project-limit-modal", () => ({
|
||||
}));
|
||||
|
||||
vi.mock("@/modules/projects/components/create-project-modal", () => ({
|
||||
CreateProjectModal: ({ open, setOpen, organizationId, organizationTeams, canDoRoleManagement }: any) =>
|
||||
CreateProjectModal: ({ open, setOpen, organizationId, organizationTeams, isAccessControlAllowed }: any) =>
|
||||
open ? (
|
||||
<div data-testid="create-project-modal">
|
||||
<button onClick={() => setOpen(false)} data-testid="close-create-modal">
|
||||
@@ -59,7 +59,7 @@ vi.mock("@/modules/projects/components/create-project-modal", () => ({
|
||||
</button>
|
||||
<div data-testid="modal-organization-id">{organizationId}</div>
|
||||
<div data-testid="modal-organization-teams">{organizationTeams?.length || 0}</div>
|
||||
<div data-testid="modal-can-do-role-management">{canDoRoleManagement.toString()}</div>
|
||||
<div data-testid="modal-is-access-control-allowed">{isAccessControlAllowed.toString()}</div>
|
||||
</div>
|
||||
) : null,
|
||||
}));
|
||||
@@ -104,7 +104,7 @@ describe("ProjectSwitcher", () => {
|
||||
environmentId: "env1",
|
||||
isOwnerOrManager: true,
|
||||
organizationTeams: mockOrganizationTeams,
|
||||
canDoRoleManagement: true,
|
||||
isAccessControlAllowed: true,
|
||||
};
|
||||
|
||||
test("renders dropdown and project name", () => {
|
||||
@@ -149,7 +149,7 @@ describe("ProjectSwitcher", () => {
|
||||
await userEvent.click(addButton);
|
||||
expect(screen.getByTestId("create-project-modal")).toBeInTheDocument();
|
||||
expect(screen.getByTestId("modal-organization-id")).toHaveTextContent("org1");
|
||||
expect(screen.getByTestId("modal-can-do-role-management")).toHaveTextContent("true");
|
||||
expect(screen.getByTestId("modal-is-access-control-allowed")).toHaveTextContent("true");
|
||||
});
|
||||
|
||||
test("closes CreateProjectModal when close button is clicked", async () => {
|
||||
@@ -162,9 +162,9 @@ describe("ProjectSwitcher", () => {
|
||||
});
|
||||
|
||||
test("passes correct props to CreateProjectModal", async () => {
|
||||
render(<ProjectSwitcher {...defaultProps} projects={[project]} canDoRoleManagement={false} />);
|
||||
render(<ProjectSwitcher {...defaultProps} projects={[project]} isAccessControlAllowed={false} />);
|
||||
const addButton = screen.getByText("common.add_project");
|
||||
await userEvent.click(addButton);
|
||||
expect(screen.getByTestId("modal-can-do-role-management")).toHaveTextContent("false");
|
||||
expect(screen.getByTestId("modal-is-access-control-allowed")).toHaveTextContent("false");
|
||||
});
|
||||
});
|
||||
|
||||
@@ -32,7 +32,7 @@ interface ProjectSwitcherProps {
|
||||
isLicenseActive: boolean;
|
||||
environmentId: string;
|
||||
isOwnerOrManager: boolean;
|
||||
canDoRoleManagement: boolean;
|
||||
isAccessControlAllowed: boolean;
|
||||
}
|
||||
|
||||
export const ProjectSwitcher = ({
|
||||
@@ -46,7 +46,7 @@ export const ProjectSwitcher = ({
|
||||
isLicenseActive,
|
||||
environmentId,
|
||||
isOwnerOrManager,
|
||||
canDoRoleManagement,
|
||||
isAccessControlAllowed,
|
||||
}: ProjectSwitcherProps) => {
|
||||
const [openLimitModal, setOpenLimitModal] = useState(false);
|
||||
const [openCreateProjectModal, setOpenCreateProjectModal] = useState(false);
|
||||
@@ -227,7 +227,7 @@ export const ProjectSwitcher = ({
|
||||
open={openCreateProjectModal}
|
||||
setOpen={setOpenCreateProjectModal}
|
||||
organizationId={organization.id}
|
||||
canDoRoleManagement={canDoRoleManagement}
|
||||
isAccessControlAllowed={isAccessControlAllowed}
|
||||
/>
|
||||
)}
|
||||
</>
|
||||
|
||||
Reference in New Issue
Block a user