Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
97 changes: 49 additions & 48 deletions apps/app/src/views/CompoundActivityEditor.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -192,18 +192,18 @@ export function CompoundActivityEditor({
onClose: authorModePromptOnClose,
} = useDisclosure();

const authorModeModal = (
const authorModeModal = user ? (
<ActivateAuthorMode
isOpen={authorModePromptIsOpen}
onClose={authorModePromptOnClose}
desiredAction="create doc"
user={user!}
user={user}
proceedCallback={() => {
createNewDocument(createDocumentParentId);
}}
fetcher={fetcher}
/>
);
) : null;

// TODO: figure out functions inside hooks
// eslint-disable-next-line react-hooks/exhaustive-deps
Expand Down Expand Up @@ -475,52 +475,53 @@ export function CompoundActivityEditor({
{selectedItemsActions}

<Spacer />
<Menu>
<MenuButton
hidden={readOnlyStructure}
as={Button}
size="sm"
colorScheme="blue"
data-test="New Button"
>
{haveContentSpinner ? <Spinner size="sm" /> : "Add"}
</MenuButton>
<MenuList>
<MenuItem
as={ReactRouterLink}
data-test="Add Explore Items"
to={`/explore`}
onClick={() => {
setAddTo(activity);
}}
>
Items from Explore
</MenuItem>
<MenuItem
as={ReactRouterLink}
data-test="Add My Activities Items"
to={`/activities/${user!.userId}`}
onClick={() => {
setAddTo(activity);
}}
>
Items from My Activities
</MenuItem>
<MenuItem
data-test="Add Document Button"
onClick={() => {
if (user?.isAuthor) {
createNewDocument();
} else {
setCreateDocumentParentId(activity.contentId);
authorModePromptOnOpen();
}
}}
{!readOnlyStructure && (
<Menu>
<MenuButton
as={Button}
size="sm"
colorScheme="blue"
data-test="New Button"
>
Blank Document {!user?.isAuthor && <>(with source code)</>}
</MenuItem>
</MenuList>
</Menu>
{haveContentSpinner ? <Spinner size="sm" /> : "Add"}
</MenuButton>
<MenuList>
<MenuItem
as={ReactRouterLink}
data-test="Add Explore Items"
to={`/explore`}
onClick={() => {
setAddTo(activity);
}}
>
Items from Explore
</MenuItem>
<MenuItem
as={ReactRouterLink}
data-test="Add My Activities Items"
to={`/activities/${user!.userId}`}
onClick={() => {
setAddTo(activity);
}}
>
Items from My Activities
</MenuItem>
<MenuItem
data-test="Add Document Button"
onClick={() => {
if (user?.isAuthor) {
createNewDocument();
} else {
setCreateDocumentParentId(activity.contentId);
authorModePromptOnOpen();
}
}}
>
Blank Document {!user?.isAuthor && <>(with source code)</>}
</MenuItem>
</MenuList>
</Menu>
)}
</Flex>
);

Expand Down
43 changes: 43 additions & 0 deletions packages/e2e-tests/e2e/Activities/activityViewer.cy.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,47 @@
describe("Activity Viewer Tests", { tags: ["@group1"] }, function () {
it("can view content list of problem set when not logged in", () => {
cy.loginAsTestUser({ isAuthor: true });

cy.createContent({
name: "Public Problem Set",
contentType: "sequence",
makePublic: true,
}).then((sequenceId) => {
cy.createContent({
name: "Doc Inside Problem Set",
contentType: "singleDoc",
parentId: sequenceId,
doenetML: "Hello from inside!",
});

// Log out so we visit as an anonymous/unauthenticated user
cy.clearCookies();

cy.visit(`/activityViewer/${sequenceId}`);

// The activity name should render
cy.get('[data-test="Activity Name"]').should(
"contain.text",
"Public Problem Set",
);

// Click the "Edit Mode Button" (shows "See source code" / "See list")
cy.get('[data-test="Edit Mode Button"]').click();

// The activities list should appear without crashing
cy.get('[data-test="Activities"]').should("exist");

// The doc inside the problem set should be listed
cy.get('[data-test="Activities"]').should(
"contain.text",
"Doc Inside Problem Set",
);

// The "Add" button should NOT be visible (read-only for non-logged-in users)
cy.get('[data-test="New Button"]').should("not.exist");
});
});

it("classifications shown in activity viewer", () => {
cy.loginAsTestUser();
cy.createContent({
Expand Down
Loading