@@ -185,7 +185,7 @@ describe('CurationAIInterface', () => {
185185 } ) ;
186186
187187 describe ( 'table mode' , ( ) => {
188- it . only ( 'should only show the basic, non-AI options in the manage columns dropdown for the identification phase' , ( ) => {
188+ it ( 'should only show the basic, non-AI options in the manage columns dropdown for the identification phase' , ( ) => {
189189 cy . contains ( 'button' , 'Manually review' ) . click ( ) ;
190190 cy . contains ( 'button' , 'Columns' ) . click ( ) ;
191191 cy . get ( '.MuiPopper-root' ) . should ( 'exist' ) . and ( 'not.contain' , 'AI' ) ;
@@ -287,8 +287,8 @@ describe('CurationAIInterface', () => {
287287 it ( 'should show 1 duplicate identified message when one duplicate exists project-wide' , ( ) => {
288288 cy . fixture ( 'projects/projectCurationPRISMAWithStudies' ) . then ( ( projectFixture : INeurosynthProjectReturn ) => {
289289 // add a duplicate tag to the first identification phase stub
290- projectFixture . provenance . curationMetadata . columns [ 0 ] . stubStudies [ 0 ] . exclusionTag =
291- defaultExclusionTags . duplicate ;
290+ projectFixture . provenance . curationMetadata . columns [ 0 ] . stubStudies [ 0 ] . exclusionTagId =
291+ defaultExclusionTags . duplicate . id ;
292292
293293 cy . intercept ( 'GET' , '**/api/projects/*' , {
294294 ...projectFixture ,
@@ -305,12 +305,12 @@ describe('CurationAIInterface', () => {
305305
306306 it ( 'should show the correct number of duplicates identified message when multiple duplicates exist project-wide' , ( ) => {
307307 cy . fixture ( 'projects/projectCurationPRISMAWithStudies' ) . then ( ( projectFixture : INeurosynthProjectReturn ) => {
308- projectFixture . provenance . curationMetadata . columns [ 0 ] . stubStudies [ 0 ] . exclusionTag =
309- defaultExclusionTags . duplicate ;
310- projectFixture . provenance . curationMetadata . columns [ 0 ] . stubStudies [ 1 ] . exclusionTag =
311- defaultExclusionTags . duplicate ;
312- projectFixture . provenance . curationMetadata . columns [ 0 ] . stubStudies [ 2 ] . exclusionTag =
313- defaultExclusionTags . duplicate ;
308+ projectFixture . provenance . curationMetadata . columns [ 0 ] . stubStudies [ 0 ] . exclusionTagId =
309+ defaultExclusionTags . duplicate . id ;
310+ projectFixture . provenance . curationMetadata . columns [ 0 ] . stubStudies [ 1 ] . exclusionTagId =
311+ defaultExclusionTags . duplicate . id ;
312+ projectFixture . provenance . curationMetadata . columns [ 0 ] . stubStudies [ 2 ] . exclusionTagId =
313+ defaultExclusionTags . duplicate . id ;
314314
315315 cy . intercept ( 'GET' , '**/api/projects/*' , {
316316 ...projectFixture ,
@@ -329,7 +329,7 @@ describe('CurationAIInterface', () => {
329329 cy . fixture ( 'projects/projectCurationPRISMAWithStudies' ) . then ( ( projectFixture : INeurosynthProjectReturn ) => {
330330 // exclude all studies in the first column
331331 projectFixture . provenance . curationMetadata . columns [ 0 ] . stubStudies . forEach ( ( stub ) => {
332- stub . exclusionTag = defaultExclusionTags . duplicate ;
332+ stub . exclusionTagId = defaultExclusionTags . duplicate . id ;
333333 } ) ;
334334
335335 cy . intercept ( 'GET' , '**/api/projects/*' , {
@@ -1043,29 +1043,21 @@ describe('CurationAIInterface', () => {
10431043 } ) ;
10441044 } ) ;
10451045
1046- describe ( 'exclusions' , ( ) => {
1046+ describe . only ( 'exclusions' , ( ) => {
10471047 it ( 'should show empty when in the exclusions view and there are no studies' , ( ) => {
10481048 cy . login ( 'mocked' ) . visit ( '/projects/abc123/curation' ) . wait ( '@projectFixture' ) ;
10491049 cy . contains ( 'li' , 'Excluded' ) . click ( ) ;
10501050 cy . contains ( 'Duplicate' ) . click ( ) ;
1051- cy . contains ( 'No studies for this exclusion ' ) . should ( 'exist' ) ;
1051+ cy . contains ( 'No studies have been marked as ' ) . should ( 'exist' ) ;
10521052 } ) ;
10531053
10541054 it ( 'should show excluded studies in the exclusions view' , ( ) => {
10551055 cy . fixture ( 'projects/projectCurationSimpleWithStudies' ) . then ( ( projectFixture : INeurosynthProjectReturn ) => {
1056- projectFixture . provenance . curationMetadata . columns [ 0 ] . stubStudies [ 0 ] . exclusionTag = {
1057- id : defaultExclusionTags . duplicate . id ,
1058- label : defaultExclusionTags . duplicate . label ,
1059- isAssignable : false ,
1060- isExclusionTag : true ,
1061- } ;
1062-
1063- projectFixture . provenance . curationMetadata . columns [ 0 ] . stubStudies [ 1 ] . exclusionTag = {
1064- id : defaultExclusionTags . duplicate . id ,
1065- label : defaultExclusionTags . duplicate . label ,
1066- isAssignable : false ,
1067- isExclusionTag : true ,
1068- } ;
1056+ projectFixture . provenance . curationMetadata . columns [ 0 ] . stubStudies [ 0 ] . exclusionTagId =
1057+ defaultExclusionTags . duplicate . id ;
1058+
1059+ projectFixture . provenance . curationMetadata . columns [ 0 ] . stubStudies [ 1 ] . exclusionTagId =
1060+ defaultExclusionTags . duplicate . id ;
10691061
10701062 cy . intercept ( 'GET' , '**/api/projects/*' , {
10711063 ...projectFixture ,
@@ -1081,19 +1073,11 @@ describe('CurationAIInterface', () => {
10811073
10821074 it ( 'should unexclude the study' , ( ) => {
10831075 cy . fixture ( 'projects/projectCurationSimpleWithStudies' ) . then ( ( projectFixture : INeurosynthProjectReturn ) => {
1084- projectFixture . provenance . curationMetadata . columns [ 0 ] . stubStudies [ 0 ] . exclusionTag = {
1085- id : defaultExclusionTags . duplicate . id ,
1086- label : defaultExclusionTags . duplicate . label ,
1087- isAssignable : false ,
1088- isExclusionTag : true ,
1089- } ;
1090-
1091- projectFixture . provenance . curationMetadata . columns [ 0 ] . stubStudies [ 1 ] . exclusionTag = {
1092- id : defaultExclusionTags . duplicate . id ,
1093- label : defaultExclusionTags . duplicate . label ,
1094- isAssignable : false ,
1095- isExclusionTag : true ,
1096- } ;
1076+ projectFixture . provenance . curationMetadata . columns [ 0 ] . stubStudies [ 0 ] . exclusionTagId =
1077+ defaultExclusionTags . duplicate . id ;
1078+
1079+ projectFixture . provenance . curationMetadata . columns [ 0 ] . stubStudies [ 1 ] . exclusionTagId =
1080+ defaultExclusionTags . duplicate . id ;
10971081
10981082 cy . intercept ( 'GET' , '**/api/projects/*' , {
10991083 ...projectFixture ,
@@ -1109,5 +1093,31 @@ describe('CurationAIInterface', () => {
11091093 cy . get ( '.MuiListItem-root .MuiTypography-root' ) . get ( 'li:contains(Duplicate)' ) . should ( 'have.length' , 2 ) ; // includes the Duplicate exclusion group list item
11101094 } ) ;
11111095 } ) ;
1096+
1097+ it ( 'should allow the user to edit an exclusion' , ( ) => {
1098+ cy . fixture ( 'projects/projectCurationSimpleWithStudies' ) . then ( ( projectFixture : INeurosynthProjectReturn ) => {
1099+ projectFixture . user = 'auth0|62e0e6c9dd47048572613b4d' ; // this user can edit the project
1100+
1101+ projectFixture . provenance . curationMetadata . columns [ 0 ] . stubStudies [ 0 ] . exclusionTagId =
1102+ 'my-custom-exclusion' ;
1103+
1104+ cy . intercept ( 'GET' , '**/api/projects/*' , {
1105+ ...projectFixture ,
1106+ } as INeurosynthProjectReturn ) . as ( 'projectFixture' ) ;
1107+ } ) ;
1108+
1109+ cy . login ( 'mocked' ) . visit ( '/projects/abc123/curation' ) . wait ( '@projectFixture' ) ;
1110+
1111+ cy . contains ( 'li' , 'Excluded' ) . click ( ) ;
1112+ cy . contains ( 'My Custom Exclusion' ) . click ( ) ; // open Duplicate exclusion group
1113+
1114+ cy . contains ( 'h4' , 'My Custom Exclusion' ) . parent ( ) . find ( '[data-testid="EditIcon"]' ) . click ( ) ;
1115+
1116+ cy . get ( 'input[type="text"]' ) . clear ( ) ;
1117+ cy . get ( 'input[type="text"]' ) . type ( 'New My Custom Exclusion' ) ;
1118+
1119+ cy . contains ( 'button' , 'Save' ) . click ( ) ;
1120+ cy . contains ( 'h4' , 'New My Custom Exclusion' ) . should ( 'exist' ) ;
1121+ } ) ;
11121122 } ) ;
11131123} ) ;
0 commit comments