Skip to content

Commit bd1ed38

Browse files
committed
fix(schema): allow quantity zero in ModifyProductVariantStockInputSchema
1 parent ba9fc25 commit bd1ed38

2 files changed

Lines changed: 24 additions & 1 deletion

File tree

‎components/schema/src/pim/product-variants/index.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { SubscriptionContractTierTypeSchema } from '../subscription-contracts';
66

77
export const ModifyProductVariantStockInputSchema = z.object({
88
operation: z.enum(['decrease', 'increase', 'overwrite']),
9-
quantity: z.number().int().min(1),
9+
quantity: z.number().int().min(0),
1010
sku: z.string().min(1),
1111
stockLocationIdentifier: z.string().min(1),
1212
});
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { OperationSchema } from '../../src/mass-operation/index';
2+
import { describe, expect, it } from 'vitest';
3+
4+
describe('Mass Operations - Product variant stock', () => {
5+
const operation = {
6+
intent: 'product/variant/stock/modify',
7+
sku: 'chair-001',
8+
stockLocationIdentifier: 'default',
9+
operation: 'overwrite',
10+
};
11+
12+
it('accepts overwriting the stock with 0', () => {
13+
expect(OperationSchema.safeParse({ ...operation, quantity: 0 }).success).toBe(true);
14+
});
15+
16+
it('rejects a negative quantity', () => {
17+
expect(OperationSchema.safeParse({ ...operation, quantity: -1 }).success).toBe(false);
18+
});
19+
20+
it('rejects a non-integer quantity', () => {
21+
expect(OperationSchema.safeParse({ ...operation, quantity: 1.5 }).success).toBe(false);
22+
});
23+
});

0 commit comments

Comments
 (0)