fix(runner): some minor fixes (#7923)

* fix(runner): some minor fixes

* fix: lint error
This commit is contained in:
George He
2024-09-06 17:50:01 +08:00
committed by GitHub
parent 1775d9fd43
commit 099d48c39a
2 changed files with 49 additions and 32 deletions

View File

@@ -153,7 +153,7 @@ export const loader: LoaderFunction = async ({ params, request }) => {
// TODO(george): we should remove this after enabling the sidebar for the runner
const startOfQuery = request.url.indexOf('?');
const urlWithoutQuery = startOfQuery > 0 ? request.url.slice(0, startOfQuery) : request.url;
const isDisplayingRunner = urlWithoutQuery.endsWith('/runner');
const isDisplayingRunner = urlWithoutQuery.includes('/runner');
if (activeRequest && !isDisplayingRunner) {
return redirect(`/organization/${organizationId}/project/${projectId}/workspace/${workspaceId}/debug/request/${activeRequestId}`);
}

View File

@@ -9,6 +9,7 @@ import { useInterval } from 'react-use';
import { Tooltip } from '../../../src/ui/components/tooltip';
import { JSON_ORDER_PREFIX, JSON_ORDER_SEPARATOR } from '../../common/constants';
import { debounce } from '../../common/misc';
import type { ResponseTimelineEntry } from '../../main/network/libcurl-promise';
import type { TimingStep } from '../../main/network/request-timing';
import * as models from '../../models';
@@ -21,6 +22,7 @@ import { invariant } from '../../utils/invariant';
import { ErrorBoundary } from '../components/error-boundary';
import { HelpTooltip } from '../components/help-tooltip';
import { Icon } from '../components/icon';
import { showAlert } from '../components/modals';
import { UploadDataModal, type UploadDataType } from '../components/modals/upload-runner-data-modal';
import { Pane, PaneBody, PaneHeader } from '../components/panes/pane';
import { RunnerResultHistoryPane } from '../components/panes/runner-result-history-pane';
@@ -108,6 +110,18 @@ export const Runner: FC<{}> = () => {
}
if (searchParams.has('error')) {
setErrorMsg(searchParams.get('error'));
// TODO: this should be removed when we are able categorized errors better and display them in different ways.
showAlert({
title: 'Unexpected Runner Failure',
message: (
<div>
<p>The runner failed due to an unhandled error:</p>
<code className="wide selectable">
<pre>{searchParams.get('error')}</pre>
</code>
</div>
),
});
searchParams.delete('error');
}
@@ -226,38 +240,41 @@ export const Runner: FC<{}> = () => {
});
const submit = useSubmit();
const onRun = () => {
const selected = new Set(reqList.selectedKeys);
const requests = Array.from(reqList.items)
.filter(item => selected.has(item.id));
// convert uploadData to environment data
const userUploadEnvs = uploadData.map(data => {
const orderedJson = porderedJSON.parse<UploadDataType>(
JSON.stringify(data),
JSON_ORDER_PREFIX,
JSON_ORDER_SEPARATOR,
);
return {
name: file!.name,
data: orderedJson.object,
dataPropertyOrder: orderedJson.map || null,
};
});
const onRun = debounce(
() => {
const selected = new Set(reqList.selectedKeys);
const requests = Array.from(reqList.items)
.filter(item => selected.has(item.id));
// convert uploadData to environment data
const userUploadEnvs = uploadData.map(data => {
const orderedJson = porderedJSON.parse<UploadDataType>(
JSON.stringify(data),
JSON_ORDER_PREFIX,
JSON_ORDER_SEPARATOR,
);
return {
name: file!.name,
data: orderedJson.object,
dataPropertyOrder: orderedJson.map || null,
};
});
submit(
{
requests,
iterations,
userUploadEnvs,
delay,
},
{
method: 'post',
encType: 'application/json',
action: `/organization/${organizationId}/project/${projectId}/workspace/${workspaceId}/debug/runner/run/`,
}
);
};
submit(
{
requests,
iterations,
userUploadEnvs,
delay,
},
{
method: 'post',
encType: 'application/json',
action: `/organization/${organizationId}/project/${projectId}/workspace/${workspaceId}/debug/runner/run/`,
}
);
},
1000,
);
const navigate = useNavigate();
const goToRequest = (requestId: string) => {