Add tests

This commit is contained in:
Robert
2022-11-30 15:28:21 +00:00
parent 2cdd6de38e
commit 3751f3ec6c
2 changed files with 76 additions and 2 deletions

View File

@@ -4,7 +4,7 @@ import { VSCodeLink } from "@vscode/webview-ui-toolkit/react";
import { formatDate } from "../../pure/date";
import { VariantAnalysisStatus } from "../../remote-queries/shared/variant-analysis";
type Props = {
export type VariantAnalysisStatusStatsProps = {
variantAnalysisStatus: VariantAnalysisStatus;
completedAt?: Date;
@@ -26,7 +26,7 @@ export const VariantAnalysisStatusStats = ({
variantAnalysisStatus,
completedAt,
onViewLogsClick,
}: Props) => {
}: VariantAnalysisStatusStatsProps) => {
if (variantAnalysisStatus === VariantAnalysisStatus.InProgress) {
return <Icon className="codicon codicon-loading codicon-modifier-spin" />;
}

View File

@@ -0,0 +1,74 @@
import * as React from "react";
import { render as reactRender, screen } from "@testing-library/react";
import { VariantAnalysisStatus } from "../../../remote-queries/shared/variant-analysis";
import {
VariantAnalysisStatusStats,
VariantAnalysisStatusStatsProps,
} from "../VariantAnalysisStatusStats";
import { formatDate } from "../../../pure/date";
describe(VariantAnalysisStatusStats.name, () => {
const onViewLogsClick = jest.fn();
afterEach(() => {
onViewLogsClick.mockReset();
});
const render = (props: Partial<VariantAnalysisStatusStatsProps> = {}) =>
reactRender(
<VariantAnalysisStatusStats
variantAnalysisStatus={VariantAnalysisStatus.InProgress}
{...props}
/>,
);
it("renders an in-progress status correctly", () => {
const { container } = render({
variantAnalysisStatus: VariantAnalysisStatus.InProgress,
});
expect(
container.getElementsByClassName(
"codicon codicon-loading codicon-modifier-spin",
).length,
).toEqual(1);
});
it("renders when there is a completedAt date", () => {
const completedAt = new Date();
render({
variantAnalysisStatus: VariantAnalysisStatus.Succeeded,
completedAt,
});
expect(screen.getByText(formatDate(completedAt))).toBeInTheDocument();
expect(screen.queryByText("-")).not.toBeInTheDocument();
});
it("renders when there isn't a completedAt date", () => {
render({
variantAnalysisStatus: VariantAnalysisStatus.Succeeded,
completedAt: undefined,
});
expect(screen.getByText("-")).toBeInTheDocument();
});
it("renders when there is a viewLogs links", () => {
render({
variantAnalysisStatus: VariantAnalysisStatus.Succeeded,
onViewLogsClick: () => undefined,
});
expect(screen.getByText("View logs")).toBeInTheDocument();
});
it("renders when there isn't a viewLogs links", () => {
render({
variantAnalysisStatus: VariantAnalysisStatus.Succeeded,
onViewLogsClick: undefined,
});
expect(screen.queryByText("View logs")).not.toBeInTheDocument();
});
});