Skip to content

Commit fbef1ea

Browse files
committed
feat: merged in master
2 parents c65d0d1 + 47dbf03 commit fbef1ea

File tree

9 files changed

+103
-49
lines changed

9 files changed

+103
-49
lines changed

compose/neurosynth-frontend/cypress/e2e/workflows/MetaAnalyses/CreateSpecificationDialog.cy.tsx

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ describe('CreateSpecificationDialog', () => {
1414
fixture: 'projects/projectCanCreateSpecification',
1515
}).as('projectFixture');
1616
cy.intercept('GET', `**/api/studysets/*`, { fixture: 'studyset' }).as('studysetFixture');
17+
cy.intercept('GET', '**/api/annotations/*', { fixture: 'annotation' }).as(
18+
'annotationFixture'
19+
);
1720
});
1821

1922
it('should show the dialog', () => {
@@ -23,5 +26,51 @@ describe('CreateSpecificationDialog', () => {
2326
cy.contains('button', 'Meta-Analyses').click();
2427
cy.contains('button', 'Meta-Analysis Specification').click();
2528
cy.get('.MuiDialog-container').should('be.visible');
29+
cy.contains('button', 'Back').should('be.disabled');
30+
});
31+
32+
it('should set the default specification values', () => {
33+
cy.login('mocked', { sub: 'github|26612023' })
34+
.visit('/projects/abc123')
35+
.wait('@projectFixture');
36+
cy.contains('button', 'Meta-Analyses').click();
37+
cy.contains('button', 'Meta-Analysis Specification').click();
38+
cy.get('.MuiDialog-container').should('be.visible');
39+
cy.contains('MKDADensity').should('exist');
40+
cy.contains('FDRCorrector').should('exist');
41+
});
42+
43+
it.only('should step through the wizard', () => {
44+
cy.intercept('POST', '**/api/specifications', {
45+
id: 'mockedSpecificationId',
46+
}).as('createSpecificationFixture');
47+
cy.intercept('POST', '**/api/studysets', {
48+
id: 'mockedStudySetId',
49+
});
50+
cy.intercept('POST', '**/api/annotations', {
51+
id: 'mockedAnnotationId',
52+
});
53+
cy.intercept('POST', '**/api/meta-analyses', {
54+
id: 'mockedMetaAnalysisId',
55+
specification: {},
56+
});
57+
cy.intercept('GET', '**/api/specifications/*', {
58+
fixture: 'specification',
59+
});
60+
61+
cy.intercept('GET', '**/api/meta-analyses/mockedMetaAnalysisId*', {
62+
fixture: 'metaAnalysis',
63+
}).as('metaAnalysesFixture');
64+
65+
cy.login('mocked', { sub: 'github|26612023' })
66+
.visit('/projects/abc123')
67+
.wait('@projectFixture');
68+
cy.contains('button', 'Meta-Analyses').click();
69+
cy.contains('button', 'Meta-Analysis Specification').click();
70+
cy.contains('Next').click();
71+
cy.contains('included').should('exist');
72+
cy.contains('button', 'Next').click();
73+
cy.contains('button', 'Next').click();
74+
cy.contains('button', 'Create Meta-Analysis Specification').click();
2675
});
2776
});

compose/neurosynth-frontend/package-lock.json

Lines changed: 12 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

compose/neurosynth-frontend/src/pages/MetaAnalysis/components/CreateMetaAnalysisSpecificationAlgorithmStep.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,12 @@ const CreateMetaAnalysisSpecificationAlgorithmStep: React.FC<{
3636
algorithm={algorithmSpec}
3737
onSelectSpecification={(update) => setAlgorithmSpec(update)}
3838
/>
39-
<Box sx={{ width: '100$%', marginTop: '1rem' }}>
39+
<Box sx={{ marginTop: '1rem' }}>
4040
<NavigationButtons
4141
nextButtonDisabled={!algorithmSpec.estimator}
4242
nextButtonStyle="contained"
4343
onButtonClick={handleNavigate}
44+
prevButtonDisabled
4445
/>
4546
</Box>
4647
</Box>

compose/neurosynth-frontend/src/pages/MetaAnalysis/components/CreateMetaAnalysisSpecificationDialogBase.tsx

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ import CreateMetaAnalysisSpecificationReview from 'pages/MetaAnalysis/components
1616
import CreateMetaAnalysisSpecificationSelectionStep from 'pages/MetaAnalysis/components/CreateMetaAnalysisSpecificationSelectionStep';
1717
import {
1818
getDefaultValuesForTypeAndParameter,
19-
correctorOpt,
20-
algorithmOpt,
19+
correctorDefaultOption,
20+
algorithmDefaultOption,
2121
} from './CreateMetaAnalysisSpecificationDialogConstants';
2222

2323
const CreateMetaAnalysisSpecificationDialogBase: React.FC<IDialog> = (props) => {
@@ -35,10 +35,16 @@ const CreateMetaAnalysisSpecificationDialogBase: React.FC<IDialog> = (props) =>
3535
referenceDataset: undefined,
3636
});
3737
const [algorithm, setAlgorithm] = useState<IAlgorithmSelection>({
38-
estimator: algorithmOpt,
39-
estimatorArgs: getDefaultValuesForTypeAndParameter(EAnalysisType.CBMA, algorithmOpt?.label),
40-
corrector: correctorOpt,
41-
correctorArgs: getDefaultValuesForTypeAndParameter('CORRECTOR', correctorOpt?.label),
38+
estimator: algorithmDefaultOption,
39+
estimatorArgs: getDefaultValuesForTypeAndParameter(
40+
EAnalysisType.CBMA,
41+
algorithmDefaultOption?.label
42+
),
43+
corrector: correctorDefaultOption,
44+
correctorArgs: getDefaultValuesForTypeAndParameter(
45+
'CORRECTOR',
46+
correctorDefaultOption?.label
47+
),
4248
});
4349

4450
useEffect(() => {
@@ -52,13 +58,16 @@ const CreateMetaAnalysisSpecificationDialogBase: React.FC<IDialog> = (props) =>
5258
props.onCloseDialog();
5359
setActiveStep(0);
5460
setAlgorithm({
55-
estimator: algorithmOpt,
61+
estimator: algorithmDefaultOption,
5662
estimatorArgs: getDefaultValuesForTypeAndParameter(
5763
EAnalysisType.CBMA,
58-
algorithmOpt?.label
64+
algorithmDefaultOption?.label
65+
),
66+
corrector: correctorDefaultOption,
67+
correctorArgs: getDefaultValuesForTypeAndParameter(
68+
'CORRECTOR',
69+
correctorDefaultOption?.label
5970
),
60-
corrector: correctorOpt,
61-
correctorArgs: getDefaultValuesForTypeAndParameter('CORRECTOR', correctorOpt?.label),
6271
});
6372
setSelection({
6473
selectionKey: undefined,
@@ -71,10 +80,10 @@ const CreateMetaAnalysisSpecificationDialogBase: React.FC<IDialog> = (props) =>
7180
const handleNavigate = (button: ENavigationButton) => {
7281
setActiveStep((prev) => {
7382
if (button === ENavigationButton.NEXT) {
74-
if (activeStep < 3) return prev + 1;
83+
if (prev < 3) return prev + 1;
7584
return prev;
7685
} else {
77-
if (activeStep > 0) return prev - 1;
86+
if (prev > 0) return prev - 1;
7887
return prev;
7988
}
8089
});

compose/neurosynth-frontend/src/pages/MetaAnalysis/components/CreateMetaAnalysisSpecificationDialogConstants.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,15 +63,16 @@ const correctorOptions: IAutocompleteObject[] = Object.keys(
6363
description: metaAnalysisSpecification.CORRECTOR[corrector]?.summary,
6464
}));
6565

66-
const correctorOpt =
66+
const correctorDefaultOption =
6767
correctorOptions.find((corrector) => corrector.label === 'FDRCorrector') || null;
68-
const algorithmOpt = metaAnalyticAlgorithms.find((algo) => algo.label === 'MKDADensity') || null;
68+
const algorithmDefaultOption =
69+
metaAnalyticAlgorithms.find((algo) => algo.label === 'MKDADensity') || null;
6970

7071
export {
7172
getDefaultValuesForTypeAndParameter,
7273
metaAnalysisSpecification,
7374
metaAnalyticAlgorithms,
7475
correctorOptions,
75-
correctorOpt,
76-
algorithmOpt,
76+
correctorDefaultOption,
77+
algorithmDefaultOption,
7778
};

compose/neurosynth-frontend/src/pages/MetaAnalysis/components/CreateMetaAnalysisSpecificationSelectionStep.spec.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ describe('CreateMetaAnalysisSpecificationSelectionStep', () => {
118118
/>
119119
);
120120

121-
const backButton = screen.getByRole('button', { name: 'back' });
121+
const backButton = screen.getByRole('button', { name: 'Back' });
122122
userEvent.click(backButton);
123123

124124
expect(mockOnNavigate).toHaveBeenCalledWith(ENavigationButton.PREV);
@@ -134,7 +134,7 @@ describe('CreateMetaAnalysisSpecificationSelectionStep', () => {
134134
/>
135135
);
136136

137-
const nextButton = screen.getByRole('button', { name: 'next' });
137+
const nextButton = screen.getByRole('button', { name: 'Next' });
138138
userEvent.click(nextButton);
139139

140140
expect(mockOnNavigate).toHaveBeenCalledWith(ENavigationButton.NEXT);
@@ -156,7 +156,7 @@ describe('CreateMetaAnalysisSpecificationSelectionStep', () => {
156156
/>
157157
);
158158

159-
const nextButton = screen.getByRole('button', { name: 'next' });
159+
const nextButton = screen.getByRole('button', { name: 'Next' });
160160
expect(nextButton).toBeDisabled();
161161
});
162162

@@ -176,7 +176,7 @@ describe('CreateMetaAnalysisSpecificationSelectionStep', () => {
176176
/>
177177
);
178178

179-
const nextButton = screen.getByRole('button', { name: 'next' });
179+
const nextButton = screen.getByRole('button', { name: 'Next' });
180180
expect(nextButton).toBeDisabled();
181181
});
182182

@@ -207,7 +207,7 @@ describe('CreateMetaAnalysisSpecificationSelectionStep', () => {
207207
/>
208208
);
209209

210-
const nextButton = screen.getByRole('button', { name: 'next' });
210+
const nextButton = screen.getByRole('button', { name: 'Next' });
211211
expect(nextButton).toBeDisabled();
212212
});
213213
});

compose/neurosynth-frontend/src/pages/MetaAnalysis/components/CreateMetaAnalysisSpecificationSelectionStep.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,11 @@ const CreateMetaAnalysisSpecificationSelectionStep: React.FC<{
2828
const [selectedValue, setSelectedValue] = useState<IAnalysesSelection>(props.selection);
2929

3030
const handleNavigate = (button: ENavigationButton) => {
31-
if (selectedValue?.selectionKey && selectedValue?.type !== EPropertyType.NONE)
31+
if (selectedValue?.selectionKey && selectedValue?.type !== EPropertyType.NONE) {
3232
props.onChooseSelection({
3333
...selectedValue,
3434
});
35+
}
3536
props.onNavigate(button);
3637
};
3738

@@ -97,7 +98,7 @@ const CreateMetaAnalysisSpecificationSelectionStep: React.FC<{
9798
onClick={() => handleNavigate(ENavigationButton.PREV)}
9899
variant="outlined"
99100
>
100-
back
101+
Back
101102
</Button>
102103
<SelectAnalysesSummaryComponent
103104
annotationdId={annotationId || ''}
@@ -113,7 +114,7 @@ const CreateMetaAnalysisSpecificationSelectionStep: React.FC<{
113114
}
114115
onClick={() => handleNavigate(ENavigationButton.NEXT)}
115116
>
116-
next
117+
Next
117118
</Button>
118119
</Box>
119120
</Box>

compose/neurosynth-frontend/src/pages/Project/ProjectPage.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,8 @@ const ProjectPage: React.FC = (props) => {
167167
borderTopLeftRadius: '6px',
168168
borderTopRightRadius: '6px',
169169
borderColor: 'lightgray',
170-
borderBottomColor: 'white',
170+
// borderBottomColor: 'white',
171+
borderBottom: '0px',
171172
marginBottom: '-2px',
172173
},
173174
'.MuibuttonBase-root': {},

compose/neurosynth-frontend/src/pages/Project/components/ProjectViewMetaAnalyses.tsx

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,26 +29,18 @@ const ProjectViewMetaAnalyses: React.FC = () => {
2929
.filter((id): id is string => id !== undefined);
3030
}
3131
}
32-
const {
33-
data = [],
34-
isLoading,
35-
isError,
36-
isRefetching,
37-
} = useGetMetaAnalysesByIds(metaAnalysisIds);
32+
const { data = [], isLoading, isError } = useGetMetaAnalysesByIds(metaAnalysisIds);
3833
const canEditMetaAnalyses = useProjectMetaAnalysisCanEdit();
39-
const projectIdFromProject = useProjectId();
4034
const [createMetaAnalysisDialogIsOpen, setCreateMetaAnalysisDialogIsOpen] = useState(false);
4135

4236
useGuard(
4337
`/projects/${projectId}/edit`,
4438
'you must finish the meta-analysis creation process to view this page',
45-
projectIdFromProject === undefined || projectId !== projectIdFromProject
46-
? false
47-
: !canEditMetaAnalyses
39+
projectId !== undefined ? false : !canEditMetaAnalyses
4840
);
4941

5042
return (
51-
<StateHandlerComponent isLoading={isLoading || isRefetching} isError={isError}>
43+
<StateHandlerComponent isLoading={isLoading} isError={isError}>
5244
<CreateMetaAnalysisSpecificationDialogBase
5345
isOpen={createMetaAnalysisDialogIsOpen}
5446
onCloseDialog={() => setCreateMetaAnalysisDialogIsOpen(false)}

0 commit comments

Comments
 (0)