Skip to content

Commit 130d8ef

Browse files
authored
Tidy up msw handlers used for scenario replay (#1649)
1 parent 63a5021 commit 130d8ef

File tree

1 file changed

+28
-18
lines changed

1 file changed

+28
-18
lines changed

extensions/ql-vscode/src/mocks/request-handlers.ts

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ export async function createRequestHandlers(scenarioDirPath: string): Promise<Re
2121
createGetRepoRequestHandler(requests),
2222
createSubmitVariantAnalysisRequestHandler(requests),
2323
createGetVariantAnalysisRequestHandler(requests),
24-
...createGetVariantAnalysisRepoRequestHandlers(requests),
25-
...createGetVariantAnalysisRepoResultRequestHandlers(requests),
24+
createGetVariantAnalysisRepoRequestHandler(requests),
25+
createGetVariantAnalysisRepoResultRequestHandler(requests),
2626
];
2727

2828
return handlers;
@@ -103,34 +103,44 @@ function createGetVariantAnalysisRequestHandler(requests: GitHubApiRequest[]): R
103103
});
104104
}
105105

106-
function createGetVariantAnalysisRepoRequestHandlers(requests: GitHubApiRequest[]): RequestHandler[] {
106+
function createGetVariantAnalysisRepoRequestHandler(requests: GitHubApiRequest[]): RequestHandler {
107107
const getVariantAnalysisRepoRequests = requests.filter(isGetVariantAnalysisRepoRequest);
108108

109-
return getVariantAnalysisRepoRequests.map(request => rest.get(
110-
`${baseUrl}/repositories/:controllerRepoId/code-scanning/codeql/variant-analyses/:variantAnalysisId/repositories/${request.request.repositoryId}`,
111-
(_req, res, ctx) => {
109+
return rest.get(
110+
`${baseUrl}/repositories/:controllerRepoId/code-scanning/codeql/variant-analyses/:variantAnalysisId/repositories/:repoId`,
111+
(req, res, ctx) => {
112+
const scenarioRequest = getVariantAnalysisRepoRequests.find(r => r.request.repositoryId.toString() === req.params.repoId);
113+
if (!scenarioRequest) {
114+
throw Error(`No scenario request found for ${req.url}`);
115+
}
116+
112117
return res(
113-
ctx.status(request.response.status),
114-
ctx.json(request.response.body),
118+
ctx.status(scenarioRequest.response.status),
119+
ctx.json(scenarioRequest.response.body),
115120
);
116-
}));
121+
});
117122
}
118123

119-
function createGetVariantAnalysisRepoResultRequestHandlers(requests: GitHubApiRequest[]): RequestHandler[] {
124+
function createGetVariantAnalysisRepoResultRequestHandler(requests: GitHubApiRequest[]): RequestHandler {
120125
const getVariantAnalysisRepoResultRequests = requests.filter(isGetVariantAnalysisRepoResultRequest);
121126

122-
return getVariantAnalysisRepoResultRequests.map(request => rest.get(
123-
`https://objects-origin.githubusercontent.com/codeql-query-console/codeql-variant-analysis-repo-tasks/:variantAnalysisId/${request.request.repositoryId}/*`,
124-
(_req, res, ctx) => {
125-
if (request.response.body) {
127+
return rest.get(
128+
'https://objects-origin.githubusercontent.com/codeql-query-console/codeql-variant-analysis-repo-tasks/:variantAnalysisId/:repoId/*',
129+
(req, res, ctx) => {
130+
const scenarioRequest = getVariantAnalysisRepoResultRequests.find(r => r.request.repositoryId.toString() === req.params.repoId);
131+
if (!scenarioRequest) {
132+
throw Error(`No scenario request found for ${req.url}`);
133+
}
134+
135+
if (scenarioRequest.response.body) {
126136
return res(
127-
ctx.status(request.response.status),
128-
ctx.body(request.response.body),
137+
ctx.status(scenarioRequest.response.status),
138+
ctx.body(scenarioRequest.response.body),
129139
);
130140
} else {
131141
return res(
132-
ctx.status(request.response.status),
142+
ctx.status(scenarioRequest.response.status),
133143
);
134144
}
135-
}));
145+
});
136146
}

0 commit comments

Comments
 (0)