Skip to content

Commit

Permalink
[pre-commit.ci] auto fixes from pre-commit.com hooks
Browse files Browse the repository at this point in the history
for more information, see https://pre-commit.ci
  • Loading branch information
pre-commit-ci[bot] committed Jan 12, 2025
1 parent 2c322e0 commit 129f03d
Show file tree
Hide file tree
Showing 3 changed files with 112 additions and 24 deletions.
10 changes: 7 additions & 3 deletions app/javascript/Components/Result/left_pane.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import {SubmissionFilePanel} from "./submission_file_panel";
import {TestRunTable} from "../test_run_table";
import {ResultContext} from "./result_context";


export class LeftPane extends React.Component {
constructor(props) {
super(props);
Expand Down Expand Up @@ -69,7 +68,10 @@ export class LeftPane extends React.Component {

render() {
return (
<Tabs selectedIndex={this.getSelectedTabIndex()} onSelect={tabIndex => this.setState({tabIndex})}>
<Tabs
selectedIndex={this.getSelectedTabIndex()}
onSelect={tabIndex => this.setState({tabIndex})}
>
<TabList>
<Tab>{I18n.t("activerecord.attributes.submission.submission_files")}</Tab>
<Tab>{I18n.t("activerecord.models.annotation.other")}</Tab>
Expand All @@ -92,7 +94,9 @@ export class LeftPane extends React.Component {
grouping_id={this.context.grouping_id}
revision_identifier={this.props.revision_identifier}
show_annotation_manager={!this.props.released_to_students}
canDownload={this.context.is_reviewer === undefined ? undefined : !this.context.is_reviewer}
canDownload={
this.context.is_reviewer === undefined ? undefined : !this.context.is_reviewer
}
fileData={this.props.submission_files}
annotation_categories={this.props.annotation_categories}
annotations={this.props.annotations}
Expand Down
18 changes: 15 additions & 3 deletions app/javascript/Components/__tests__/markdown_editor.test.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,11 @@ describe("MarkdownEditor", () => {
});

it("should properly handle the text input change", async () => {
render(<ResultContext.Provider value={contextValue}><MarkdownEditor {...props} /></ResultContext.Provider>);
render(
<ResultContext.Provider value={contextValue}>
<MarkdownEditor {...props} />
</ResultContext.Provider>
);

const inputBox = screen.getByRole("textbox");
await userEvent.type(inputBox, "Hello world");
Expand All @@ -43,15 +47,23 @@ describe("MarkdownEditor", () => {
it("should show autocomplete if desired", async () => {
props.show_autocomplete = true;
props.annotation_text_id = "id";
render(<ResultContext.Provider value={contextValue}><MarkdownEditor {...props} /></ResultContext.Provider>);
render(
<ResultContext.Provider value={contextValue}>
<MarkdownEditor {...props} />
</ResultContext.Provider>
);

const autocompleteList = screen.queryByTestId("markdown-editor-autocomplete-root");
expect(autocompleteList).toBeTruthy();
});

it("should properly display and pass down props to the preview tab", async () => {
props.content = "arma virumque cano";
render(<ResultContext.Provider value={contextValue}><MarkdownEditor {...props} /></ResultContext.Provider>);
render(
<ResultContext.Provider value={contextValue}>
<MarkdownEditor {...props} />
</ResultContext.Provider>
);

await userEvent.click(screen.getByRole("tab", {name: "Preview"}));

Expand Down
108 changes: 90 additions & 18 deletions app/javascript/Components/__tests__/submission_selector.test.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -71,33 +71,53 @@ describe("SubmissionSelector", () => {
it("should not show anything if it is being viewed by a non-reviewer student", () => {
const newContextValue = JSON.parse(JSON.stringify(contextValue));
newContextValue.role = "Student";
render(<ResultContext.Provider value={newContextValue}><SubmissionSelector {...props} /></ResultContext.Provider>);
render(
<ResultContext.Provider value={newContextValue}>
<SubmissionSelector {...props} />
</ResultContext.Provider>
);
expect(screen.queryByTestId("submission-selector-container")).toBeNull();
});

it("should call nextSubmission when the next-button is pressed", () => {
render(<ResultContext.Provider value={contextValue}><SubmissionSelector {...props} /></ResultContext.Provider>);
render(
<ResultContext.Provider value={contextValue}>
<SubmissionSelector {...props} />
</ResultContext.Provider>
);
const button = screen.getByTitle(I18n.t("results.next_submission"), {exact: false});
fireEvent.click(button);

expect(props.nextSubmission).toHaveBeenCalled();
});

it("should call previousSubmission when the next-button is pressed", () => {
render(<ResultContext.Provider value={contextValue}><SubmissionSelector {...props} /></ResultContext.Provider>);
render(
<ResultContext.Provider value={contextValue}>
<SubmissionSelector {...props} />
</ResultContext.Provider>
);
const button = screen.getByTitle(I18n.t("results.previous_submission"), {exact: false});
fireEvent.click(button);

expect(props.previousSubmission).toHaveBeenCalled();
});

it("should display the group name", () => {
render(<ResultContext.Provider value={contextValue}><SubmissionSelector {...props} /></ResultContext.Provider>);
render(
<ResultContext.Provider value={contextValue}>
<SubmissionSelector {...props} />
</ResultContext.Provider>
);
expect(screen.getByText(props.group_name)).toBeTruthy();
});

it.skip("should show filter modal when filter-button is pressed", () => {
render(<ResultContext.Provider value={contextValue}><SubmissionSelector {...props} /></ResultContext.Provider>);
render(
<ResultContext.Provider value={contextValue}>
<SubmissionSelector {...props} />
</ResultContext.Provider>
);
const button = screen.getByTitle(I18n.t("results.filter_submissions"));
fireEvent.click(button);

Expand All @@ -109,7 +129,11 @@ describe("SubmissionSelector", () => {
it("should pass correct values to the progress meter", () => {
props.num_marked = 50;
props.num_collected = 100;
render(<ResultContext.Provider value={contextValue}><SubmissionSelector {...props} /></ResultContext.Provider>);
render(
<ResultContext.Provider value={contextValue}>
<SubmissionSelector {...props} />
</ResultContext.Provider>
);
const meter = screen.getByTestId("progress-bar");
expect(meter).toHaveAttribute("value", String(props.num_marked));
expect(meter).toHaveAttribute("min", "0");
Expand All @@ -123,15 +147,23 @@ describe("SubmissionSelector", () => {
it("should display the total correctly", () => {
props.total = 50;
props.assignment_max_mark = 100;
render(<ResultContext.Provider value={contextValue}><SubmissionSelector {...props} /></ResultContext.Provider>);
render(
<ResultContext.Provider value={contextValue}>
<SubmissionSelector {...props} />
</ResultContext.Provider>
);
const expected_display = `${Math.round(props.total * 100) / 100} / ${
props.assignment_max_mark
}`;
expect(screen.getByText(expected_display)).toBeTruthy();
});

it("can toggle into fullscreen", () => {
render(<ResultContext.Provider value={contextValue}><SubmissionSelector {...props} /></ResultContext.Provider>);
render(
<ResultContext.Provider value={contextValue}>
<SubmissionSelector {...props} />
</ResultContext.Provider>
);
const button = screen.getByTitle(I18n.t("results.fullscreen_enter"), {exact: false});
fireEvent.click(button);

Expand All @@ -140,7 +172,11 @@ describe("SubmissionSelector", () => {

it("can toggle out of fullscreen", () => {
props.fullscreen = true;
render(<ResultContext.Provider value={contextValue}><SubmissionSelector {...props} /></ResultContext.Provider>);
render(
<ResultContext.Provider value={contextValue}>
<SubmissionSelector {...props} />
</ResultContext.Provider>
);
const button = screen.getByTitle(I18n.t("results.fullscreen_exit"), {exact: false});
fireEvent.click(button);

Expand All @@ -149,22 +185,34 @@ describe("SubmissionSelector", () => {

it("should not allow release if can_release is false", () => {
props.can_release = false;
render(<ResultContext.Provider value={contextValue}><SubmissionSelector {...props} /></ResultContext.Provider>);
render(
<ResultContext.Provider value={contextValue}>
<SubmissionSelector {...props} />
</ResultContext.Provider>
);
expect(screen.queryByText(I18n.t("submissions.release_marks"))).toBeNull();
});

it("should set the text as unrelease if it has already been released", () => {
props.released_to_students = true;
props.can_release = true;
render(<ResultContext.Provider value={contextValue}><SubmissionSelector {...props} /></ResultContext.Provider>);
render(
<ResultContext.Provider value={contextValue}>
<SubmissionSelector {...props} />
</ResultContext.Provider>
);
const element = screen.queryByRole("button", {name: I18n.t("submissions.unrelease_marks")});
expect(element).toBeTruthy();
});

it("should set the text as release if it has not already been released and disable it if marking state is not complete", () => {
props.released_to_students = false;
props.can_release = true;
render(<ResultContext.Provider value={contextValue}><SubmissionSelector {...props} /></ResultContext.Provider>);
render(
<ResultContext.Provider value={contextValue}>
<SubmissionSelector {...props} />
</ResultContext.Provider>
);
const element = screen.getByRole("button", {name: I18n.t("submissions.release_marks")});
expect(element).toBeDisabled();
});
Expand All @@ -173,7 +221,11 @@ describe("SubmissionSelector", () => {
props.released_to_students = false;
props.can_release = true;
props.marking_state = "complete";
render(<ResultContext.Provider value={contextValue}><SubmissionSelector {...props} /></ResultContext.Provider>);
render(
<ResultContext.Provider value={contextValue}>
<SubmissionSelector {...props} />
</ResultContext.Provider>
);
const element = screen.getByRole("button", {name: I18n.t("submissions.release_marks")});
expect(element).toBeEnabled();
});
Expand All @@ -182,7 +234,11 @@ describe("SubmissionSelector", () => {
props.marking_state = "complete";
props.released_to_students = false;
props.can_release = true;
render(<ResultContext.Provider value={contextValue}><SubmissionSelector {...props} /></ResultContext.Provider>);
render(
<ResultContext.Provider value={contextValue}>
<SubmissionSelector {...props} />
</ResultContext.Provider>
);
const element = screen.getByRole("button", {name: I18n.t("submissions.release_marks")});
fireEvent.click(element);

Expand All @@ -192,7 +248,11 @@ describe("SubmissionSelector", () => {
it("should have the marking state button function as expected when marking_state is complete", () => {
props.marking_state = "complete";
props.released_to_students = false;
render(<ResultContext.Provider value={contextValue}><SubmissionSelector {...props} /></ResultContext.Provider>);
render(
<ResultContext.Provider value={contextValue}>
<SubmissionSelector {...props} />
</ResultContext.Provider>
);

const button = screen.queryByRole("button", {name: I18n.t("results.set_to_incomplete")});
expect(button).toBeTruthy();
Expand All @@ -201,7 +261,11 @@ describe("SubmissionSelector", () => {

it("should have the marking state button function as expected when marking_state is incomplete", () => {
props.marking_state = "incomplete";
render(<ResultContext.Provider value={contextValue}><SubmissionSelector {...props} /></ResultContext.Provider>);
render(
<ResultContext.Provider value={contextValue}>
<SubmissionSelector {...props} />
</ResultContext.Provider>
);

const button = screen.queryByRole("button", {name: I18n.t("results.set_to_complete")});
expect(button).toBeTruthy();
Expand All @@ -210,7 +274,11 @@ describe("SubmissionSelector", () => {
it("should have the marking state button enabled if props.marks have no unmarked marks and marking_state is incomplete", () => {
props.marking_state = "incomplete";
props.marks = [{mark: 5}];
render(<ResultContext.Provider value={contextValue}><SubmissionSelector {...props} /></ResultContext.Provider>);
render(
<ResultContext.Provider value={contextValue}>
<SubmissionSelector {...props} />
</ResultContext.Provider>
);

const button = screen.queryByRole("button", {name: I18n.t("results.set_to_complete")});
expect(button).toBeEnabled();
Expand All @@ -219,7 +287,11 @@ describe("SubmissionSelector", () => {
it("should have the marking state button disabled if props.marks has at least 1 mark with no mark and marking_state is incomplete", () => {
props.marking_state = "incomplete";
props.marks = [{mark: 5}, {mark: null}];
render(<ResultContext.Provider value={contextValue}><SubmissionSelector {...props} /></ResultContext.Provider>);
render(
<ResultContext.Provider value={contextValue}>
<SubmissionSelector {...props} />
</ResultContext.Provider>
);

const button = screen.queryByRole("button", {name: I18n.t("results.set_to_complete")});
expect(button).toBeDisabled();
Expand Down

0 comments on commit 129f03d

Please sign in to comment.