Fix engine routes that are meta engine or non-meta-engine specific (#104757)

- to include conditionals in their routing

- this matches their nav link behavior - we should have checks in routes as well just in case
This commit is contained in:
Constance 2021-07-07 14:51:28 -07:00 committed by GitHub
parent b911369485
commit 7af3be0655
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 5 deletions

View file

@ -39,6 +39,7 @@ describe('EngineRouter', () => {
...mockEngineValues,
dataLoading: false,
engineNotFound: false,
isMetaEngine: false,
myRole: {},
};
const actions = {
@ -175,14 +176,18 @@ describe('EngineRouter', () => {
});
it('renders a source engines view', () => {
setMockValues({ ...values, myRole: { canViewMetaEngineSourceEngines: true } });
setMockValues({
...values,
myRole: { canViewMetaEngineSourceEngines: true },
isMetaEngine: true,
});
const wrapper = shallow(<EngineRouter />);
expect(wrapper.find(SourceEngines)).toHaveLength(1);
});
it('renders a crawler view', () => {
setMockValues({ ...values, myRole: { canViewEngineCrawler: true } });
setMockValues({ ...values, myRole: { canViewEngineCrawler: true }, isMetaEngine: false });
const wrapper = shallow(<EngineRouter />);
expect(wrapper.find(CrawlerRouter)).toHaveLength(1);

View file

@ -66,7 +66,7 @@ export const EngineRouter: React.FC = () => {
} = useValues(AppLogic);
const { engineName: engineNameFromUrl } = useParams() as { engineName: string };
const { engineName, dataLoading, engineNotFound } = useValues(EngineLogic);
const { engineName, dataLoading, engineNotFound, isMetaEngine } = useValues(EngineLogic);
const { setEngineName, initializeEngine, pollEmptyEngine, stopPolling, clearEngine } = useActions(
EngineLogic
);
@ -120,12 +120,12 @@ export const EngineRouter: React.FC = () => {
<SchemaRouter />
</Route>
)}
{canViewMetaEngineSourceEngines && (
{canViewMetaEngineSourceEngines && isMetaEngine && (
<Route path={META_ENGINE_SOURCE_ENGINES_PATH}>
<SourceEngines />
</Route>
)}
{canViewEngineCrawler && (
{canViewEngineCrawler && !isMetaEngine && (
<Route path={ENGINE_CRAWLER_PATH}>
<CrawlerRouter />
</Route>