Skip to content

Commit 405fcfc

Browse files
committed
feature: add missing items
1 parent 432cb2a commit 405fcfc

File tree

3 files changed

+30
-1
lines changed

3 files changed

+30
-1
lines changed

docs/src/pages/guides/msw.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,3 +156,30 @@ import { setupServer } from 'msw/node';
156156
const server = setupServer();
157157
server.use(...getPetsMock());
158158
```
159+
160+
---
161+
162+
### Deterministic Mock Data with `faker.seed`
163+
164+
By default, faker generates random mock data on each run. You can repeat the same output with the `seed` option in your mock configuration. This will inject a `faker.seed(...)` call into your generated mock files, ensuring deterministic output.
165+
166+
#### Configuration Example
167+
168+
```typescript
169+
import { defineConfig } from 'orval';
170+
171+
export default defineConfig({
172+
petstore: {
173+
output: {
174+
target: './src/petstore.ts',
175+
mock: {
176+
type: 'msw',
177+
seed: 12345, // Set a deterministic seed
178+
},
179+
},
180+
input: {
181+
target: './petstore.yaml',
182+
},
183+
},
184+
});
185+
```

packages/core/src/types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -320,6 +320,8 @@ export type GlobalMockOptions = {
320320
baseUrl?: string;
321321
// This is used to set the locale of the faker library
322322
locale?: keyof typeof allLocales;
323+
// This is used to seed the faker library for deterministic output
324+
seed?: number | number[];
323325
indexMockFiles?: boolean;
324326
};
325327

packages/mock/src/msw/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ export const generateMSWImports: GenerateMockImports = ({
6363

6464
const seed = options?.seed;
6565
if (seed !== undefined && !(Array.isArray(seed) && seed.length === 0)) {
66-
return `${importBlock}\nfaker.seed(${Array.isArray(seed) ? `[${seed.join(',')}]` : seed});\n\n`;
66+
return `${importBlock}\nfaker.seed(${Array.isArray(seed) ? `[${seed.join(', ')}]` : seed});\n\n`;
6767
}
6868
return importBlock;
6969
};

0 commit comments

Comments
 (0)