Skip to content

Commit 276cfa4

Browse files
committed
allow matching path with different method
1 parent 3f5d9e4 commit 276cfa4

File tree

3 files changed

+16
-13
lines changed

3 files changed

+16
-13
lines changed

Diff for: packages/insomnia/src/ui/components/editors/mock-response-extractor.tsx

+3-2
Original file line numberDiff line numberDiff line change
@@ -106,11 +106,12 @@ export const MockResponseExtractor = () => {
106106
onComplete: async name => {
107107
invariant(activeResponse, 'Active response must be defined');
108108
const body = await fs.readFile(activeResponse.bodyPath);
109-
const hasRouteInServer = mockServerAndRoutes.find(s => s._id === selectedMockServer)?.routes.find(r => r.name === name);
109+
const hasRouteInServer = mockServerAndRoutes.find(s => s._id === selectedMockServer)?.routes
110+
.find(r => r.name === name && r.method.toUpperCase() === 'GET');
110111
if (hasRouteInServer) {
111112
showModal(AlertModal, {
112113
title: 'Error',
113-
message: `Path "${name}" must be unique. Please enter a different name.`,
114+
message: `Path "${name}" and method must be unique. Please enter a different name.`,
114115
});
115116
return;
116117
};

Diff for: packages/insomnia/src/ui/routes/mock-route.tsx

+6-5
Original file line numberDiff line numberDiff line change
@@ -151,13 +151,13 @@ export const MockRouteRoute = () => {
151151
action: `/organization/${organizationId}/project/${projectId}/workspace/${workspaceId}/debug/request/new-mock-send`,
152152
method: 'post',
153153
});
154-
155154
const upsertMockbinHar = async (pathInput?: string) => {
156-
const hasRouteInServer = mockRoutes.filter(m => m._id !== mockRoute._id).find(m => m.name === pathInput);
155+
const hasRouteInServer = mockRoutes.filter(m => m._id !== mockRoute._id)
156+
.find(m => m.name === pathInput && m.method.toUpperCase() === mockRoute.method.toUpperCase());
157157
if (hasRouteInServer) {
158158
showModal(AlertModal, {
159159
title: 'Error',
160-
message: `Path "${pathInput}" must be unique. Please enter a different name.`,
160+
message: `Path "${pathInput}" and method must be unique. Please enter a different name.`,
161161
});
162162
return;
163163
};
@@ -188,11 +188,12 @@ export const MockRouteRoute = () => {
188188
});
189189
};
190190
const onSend = async (pathInput: string) => {
191-
const hasRouteInServer = mockRoutes.filter(m => m._id !== mockRoute._id).find(m => m.name === pathInput);
191+
const hasRouteInServer = mockRoutes.filter(m => m._id !== mockRoute._id)
192+
.find(m => m.name === pathInput && m.method.toUpperCase() === mockRoute.method.toUpperCase());
192193
if (hasRouteInServer) {
193194
showModal(AlertModal, {
194195
title: 'Error',
195-
message: `Path "${pathInput}" must be unique. Please enter a different name.`,
196+
message: `Path "${pathInput}" and method must be unique. Please enter a different name.`,
196197
});
197198
return;
198199
};

Diff for: packages/insomnia/src/ui/routes/mock-server.tsx

+7-6
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,12 @@ const MockServerRoute = () => {
7171
defaultValue: mockRoutes.find(s => s._id === id)?.name,
7272
submitName: 'Rename',
7373
onComplete: name => {
74-
const hasRouteInServer = mockRoutes.filter(m => m._id !== id).find(m => m.name === name);
74+
const hasRouteInServer = mockRoutes.filter(m => m._id !== id)
75+
.find(m => m.name === name && m.method.toUpperCase() === mockRoutes.find(m => m._id !== id)?.method.toUpperCase());
7576
if (hasRouteInServer) {
7677
showModal(AlertModal, {
7778
title: 'Error',
78-
message: `Path "${name}" must be unique. Please enter a different name.`,
79+
message: `Path "${name}" and method must be unique. Please enter a different name.`,
7980
});
8081
return;
8182
};
@@ -198,11 +199,11 @@ const MockServerRoute = () => {
198199
submitName: 'Create',
199200
placeholder: '/path/to/resource',
200201
onComplete: name => {
201-
const hasRouteInServer = mockRoutes.find(m => m.name === name);
202+
const hasRouteInServer = mockRoutes.find(m => m.name === name && m.method.toUpperCase() === 'GET');
202203
if (hasRouteInServer) {
203204
showModal(AlertModal, {
204205
title: 'Error',
205-
message: `Path "${name}" must be unique. Please enter a different name.`,
206+
message: `Path "${name}" and must be unique. Please enter a different name.`,
206207
});
207208
return;
208209
};
@@ -284,11 +285,11 @@ const MockServerRoute = () => {
284285
ariaLabel="Mock route name"
285286
className='hover:!bg-transparent'
286287
onSubmit={name => {
287-
const hasRouteInServer = mockRoutes.filter(m => m._id !== item._id).find(m => m.name === name);
288+
const hasRouteInServer = mockRoutes.filter(m => m._id !== item._id).find(m => m.name === name && m.method.toUpperCase() === item.method.toUpperCase());
288289
if (hasRouteInServer) {
289290
showModal(AlertModal, {
290291
title: 'Error',
291-
message: `Path "${name}" must be unique. Please enter a different name.`,
292+
message: `Path "${name}" and method must be unique. Please enter a different name.`,
292293
});
293294
return;
294295
};

0 commit comments

Comments
 (0)