mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-06-20 22:01:45 +00:00
fb36ae5678
The i18n and schema changes added code that wasn't prettier-formatted, and place.schema.ts imported categorySchema without using it. Run prettier over shared and remove the import so 'npm run lint' + 'format:check' pass.
59 lines
1.7 KiB
TypeScript
59 lines
1.7 KiB
TypeScript
import {
|
|
budgetCreateItemRequestSchema,
|
|
budgetUpdateMembersRequestSchema,
|
|
budgetToggleMemberPaidRequestSchema,
|
|
budgetReorderItemsRequestSchema,
|
|
} from './budget.schema';
|
|
|
|
import { describe, it, expect } from 'vitest';
|
|
|
|
describe('budgetCreateItemRequestSchema', () => {
|
|
it('requires a name; money/meta fields optional + nullable', () => {
|
|
expect(
|
|
budgetCreateItemRequestSchema.safeParse({ name: 'Hotel' }).success,
|
|
).toBe(true);
|
|
expect(
|
|
budgetCreateItemRequestSchema.safeParse({
|
|
name: 'Hotel',
|
|
total_price: 200,
|
|
persons: null,
|
|
}).success,
|
|
).toBe(true);
|
|
expect(budgetCreateItemRequestSchema.safeParse({}).success).toBe(false);
|
|
});
|
|
});
|
|
|
|
describe('budgetUpdateMembersRequestSchema', () => {
|
|
it('requires a numeric user_ids array', () => {
|
|
expect(
|
|
budgetUpdateMembersRequestSchema.safeParse({ user_ids: [1, 2] }).success,
|
|
).toBe(true);
|
|
expect(
|
|
budgetUpdateMembersRequestSchema.safeParse({ user_ids: 'no' }).success,
|
|
).toBe(false);
|
|
});
|
|
});
|
|
|
|
describe('budgetToggleMemberPaidRequestSchema', () => {
|
|
it('requires a boolean paid', () => {
|
|
expect(
|
|
budgetToggleMemberPaidRequestSchema.safeParse({ paid: true }).success,
|
|
).toBe(true);
|
|
expect(
|
|
budgetToggleMemberPaidRequestSchema.safeParse({ paid: 'yes' }).success,
|
|
).toBe(false);
|
|
});
|
|
});
|
|
|
|
describe('budgetReorderItemsRequestSchema', () => {
|
|
it('requires numeric ids', () => {
|
|
expect(
|
|
budgetReorderItemsRequestSchema.safeParse({ orderedIds: [3, 1, 2] })
|
|
.success,
|
|
).toBe(true);
|
|
expect(
|
|
budgetReorderItemsRequestSchema.safeParse({ orderedIds: ['a'] }).success,
|
|
).toBe(false);
|
|
});
|
|
});
|