File tree Expand file tree Collapse file tree 2 files changed +55
-7
lines changed
packages/openneuro-app/src/scripts/dataset/components Expand file tree Collapse file tree 2 files changed +55
-7
lines changed Original file line number Diff line number Diff line change @@ -39,10 +39,10 @@ export const ValidationBlock: React.FC<ValidationBlockProps> = ({
3939 </ div >
4040 )
4141 } else {
42- // Reconstruct DatasetIssues from JSON
43- const datasetIssues = new DatasetIssues ( )
4442 // If data exists, populate this. Otherwise we show pending.
4543 if ( validation ?. issues ) {
44+ // Reconstruct DatasetIssues from JSON
45+ const datasetIssues = new DatasetIssues ( )
4646 datasetIssues . issues = validation . issues
4747 datasetIssues . codeMessages = validation . codeMessages . reduce (
4848 ( acc , curr ) => {
@@ -51,11 +51,17 @@ export const ValidationBlock: React.FC<ValidationBlockProps> = ({
5151 } ,
5252 new Map < string , string > ( ) ,
5353 )
54+ return (
55+ < div className = "validation-accordion" >
56+ < Validation issues = { datasetIssues } />
57+ </ div >
58+ )
59+ } else {
60+ return (
61+ < div className = "validation-accordion" >
62+ < Validation issues = { null } />
63+ </ div >
64+ )
5465 }
55- return (
56- < div className = "validation-accordion" >
57- < Validation issues = { datasetIssues } />
58- </ div >
59- )
6066 }
6167}
Original file line number Diff line number Diff line change 1+ import React from "react"
2+ import { render , screen } from "@testing-library/react"
3+ import { ValidationBlock } from "../ValidationBlock"
4+ import { vi } from "vitest"
5+
6+ vi . mock ( "../../../config.ts" )
7+
8+ describe ( "ValidationBlock component" , ( ) => {
9+ it ( "renders legacy validation if issues prop is present" , ( ) => {
10+ const issues = [
11+ { } ,
12+ ]
13+ render ( < ValidationBlock datasetId = "ds000031" issues = { issues } /> )
14+ expect ( screen . getByText ( "BIDS Validation" ) ) . toBeInTheDocument ( )
15+ } )
16+ it ( "renders schema validation if validation prop is present" , ( ) => {
17+ const validation = {
18+ issues : [
19+ {
20+ code : "JSON_KEY_RECOMMENDED" ,
21+ location : "/dataset_description.json" ,
22+ rule : "rules.dataset_metadata.dataset_description" ,
23+ subCode : "DatasetType" ,
24+ } ,
25+ ] ,
26+ codeMessages : [
27+ { code : "JSON_KEY_RECOMMENDED" , message : "message" } ,
28+ ] ,
29+ }
30+ render (
31+ < ValidationBlock
32+ datasetId = "ds000031"
33+ validation = { validation }
34+ /> ,
35+ )
36+ expect ( screen . getByText ( "BIDS Validation" ) ) . toBeInTheDocument ( )
37+ } )
38+ it ( "renders pending validation if neither issues nor validation props are present" , ( ) => {
39+ render ( < ValidationBlock datasetId = "ds000031" /> )
40+ expect ( screen . getByText ( "Validation Pending" ) ) . toBeInTheDocument ( )
41+ } )
42+ } )
You can’t perform that action at this time.
0 commit comments