Skip to content
Merged
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
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,10 @@ export const ValidationBlock: React.FC<ValidationBlockProps> = ({
</div>
)
} else {
// Reconstruct DatasetIssues from JSON
const datasetIssues = new DatasetIssues()
// If data exists, populate this. Otherwise we show pending.
if (validation?.issues) {
// Reconstruct DatasetIssues from JSON
const datasetIssues = new DatasetIssues()
datasetIssues.issues = validation.issues
datasetIssues.codeMessages = validation.codeMessages.reduce(
(acc, curr) => {
Expand All @@ -51,11 +51,17 @@ export const ValidationBlock: React.FC<ValidationBlockProps> = ({
},
new Map<string, string>(),
)
return (
<div className="validation-accordion">
<Validation issues={datasetIssues} />
</div>
)
} else {
return (
<div className="validation-accordion">
<Validation issues={null} />
</div>
)
}
return (
<div className="validation-accordion">
<Validation issues={datasetIssues} />
</div>
)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import React from "react"
import { render, screen } from "@testing-library/react"
import { ValidationBlock } from "../ValidationBlock"
import { vi } from "vitest"

vi.mock("../../../config.ts")

describe("ValidationBlock component", () => {
it("renders legacy validation if issues prop is present", () => {
const issues = [
{},
]
render(<ValidationBlock datasetId="ds000031" issues={issues} />)
expect(screen.getByText("BIDS Validation")).toBeInTheDocument()
})
it("renders schema validation if validation prop is present", () => {
const validation = {
issues: [
{
code: "JSON_KEY_RECOMMENDED",
location: "/dataset_description.json",
rule: "rules.dataset_metadata.dataset_description",
subCode: "DatasetType",
},
],
codeMessages: [
{ code: "JSON_KEY_RECOMMENDED", message: "message" },
],
}
render(
<ValidationBlock
datasetId="ds000031"
validation={validation}
/>,
)
expect(screen.getByText("BIDS Validation")).toBeInTheDocument()
})
it("renders pending validation if neither issues nor validation props are present", () => {
render(<ValidationBlock datasetId="ds000031" />)
expect(screen.getByText("Validation Pending")).toBeInTheDocument()
})
})
Loading