Skip to content

Commit 99cc5a6

Browse files
authoredJan 28, 2024
feat(msw): define the return value type in the msw mock function. (#1171)
* feat: possible to overwrite value when creating an `object` with `msw` mock * chore: changed determination of orverridability * feat: specify return type in `msw` mock values generation function
1 parent c7ccb65 commit 99cc5a6

File tree

4 files changed

+17
-25
lines changed

4 files changed

+17
-25
lines changed
 

‎packages/core/src/writers/split-mode.ts

+1-6
Original file line numberDiff line numberDiff line change
@@ -61,12 +61,7 @@ export const writeSplitMode = async ({
6161
});
6262
mockData += builder.importsMock({
6363
implementation: implementationMock,
64-
imports: [
65-
{
66-
exports: importsMock,
67-
dependency: relativeSchemasPath,
68-
},
69-
],
64+
imports: [{ exports: imports, dependency: relativeSchemasPath }],
7065
specsName,
7166
hasSchemaDir: !!output.schemas,
7267
isAllowSyntheticDefaultImports,

‎packages/core/src/writers/split-tags-mode.ts

+1-6
Original file line numberDiff line numberDiff line change
@@ -75,12 +75,7 @@ export const writeSplitTagsMode = async ({
7575
});
7676
mockData += builder.importsMock({
7777
implementation: implementationMock,
78-
imports: [
79-
{
80-
exports: importsMock,
81-
dependency: relativeSchemasPath,
82-
},
83-
],
78+
imports: importsForBuilder,
8479
specsName,
8580
hasSchemaDir: !!output.schemas,
8681
isAllowSyntheticDefaultImports,

‎packages/core/src/writers/tags-mode.ts

+12-12
Original file line numberDiff line numberDiff line change
@@ -50,18 +50,20 @@ export const writeTagsMode = async ({
5050
? upath.relativeSafe(dirname, getFileInfo(output.schemas).dirname)
5151
: './' + filename + '.schemas';
5252

53+
const importsForBuilder = [
54+
{
55+
exports: imports.filter(
56+
(imp) =>
57+
!importsMock.some((impMock) => imp.name === impMock.name),
58+
),
59+
dependency: schemasPathRelative,
60+
},
61+
];
62+
5363
data += builder.imports({
5464
client: output.client,
5565
implementation,
56-
imports: [
57-
{
58-
exports: imports.filter(
59-
(imp) =>
60-
!importsMock.some((impMock) => imp.name === impMock.name),
61-
),
62-
dependency: schemasPathRelative,
63-
},
64-
],
66+
imports: importsForBuilder,
6567
specsName,
6668
hasSchemaDir: !!output.schemas,
6769
isAllowSyntheticDefaultImports,
@@ -74,9 +76,7 @@ export const writeTagsMode = async ({
7476
if (output.mock) {
7577
data += builder.importsMock({
7678
implementation: implementationMock,
77-
imports: [
78-
{ exports: importsMock, dependency: schemasPathRelative },
79-
],
79+
imports: importsForBuilder,
8080
specsName,
8181
hasSchemaDir: !!output.schemas,
8282
isAllowSyntheticDefaultImports,

‎packages/mock/src/msw/index.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@ export const generateMSW = (
7474

7575
const isResponseOverridable = value.includes(overrideVarName);
7676

77+
const returnType = response.definition.success;
78+
7779
const isTextPlain = response.contentTypes.includes('text/plain');
7880

7981
const functionName = `get${pascal(operationId)}Mock`;
@@ -104,7 +106,7 @@ export const ${handlerName} = http.${verb}('${route}', async () => {
104106
implementation: {
105107
function:
106108
value && value !== 'undefined'
107-
? `export const ${functionName} = (${isResponseOverridable ? `overrideResponse?: any` : ''}) => (${value})\n\n`
109+
? `export const ${functionName} = (${isResponseOverridable ? `overrideResponse?: any` : ''}): ${returnType} => (${value})\n\n`
108110
: '',
109111
handlerName: handlerName,
110112
handler: handlerImplementation,

0 commit comments

Comments
 (0)
Please sign in to comment.