4372018c09
Refund rollback, winery T+3, multi withdraw, mini-user store detail, dev plan batch edit and WeCom dispatch, support ticket edit/attachments/batch status, package imageUrl. Co-authored-by: Cursor <cursoragent@cursor.com>
49 lines
1.3 KiB
TypeScript
49 lines
1.3 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
|
import { validateSupportTicketStatusTransition } from './support-ticket';
|
|
|
|
describe('validateSupportTicketStatusTransition', () => {
|
|
it('allows DEVELOPING -> TESTING', () => {
|
|
expect(
|
|
validateSupportTicketStatusTransition('DEVELOPING', 'TESTING', {
|
|
linkedTaskCount: 1,
|
|
isSuperAdmin: true,
|
|
}).ok,
|
|
).toBe(true);
|
|
});
|
|
|
|
it('blocks PENDING_REVIEW -> DEVELOPING without tasks', () => {
|
|
expect(
|
|
validateSupportTicketStatusTransition('PENDING_REVIEW', 'DEVELOPING', {
|
|
linkedTaskCount: 0,
|
|
isSuperAdmin: true,
|
|
}).ok,
|
|
).toBe(false);
|
|
});
|
|
|
|
it('blocks rollback PASSED -> DEVELOPING', () => {
|
|
expect(
|
|
validateSupportTicketStatusTransition('PASSED', 'DEVELOPING', {
|
|
linkedTaskCount: 1,
|
|
isSuperAdmin: true,
|
|
}).ok,
|
|
).toBe(false);
|
|
});
|
|
|
|
it('requires super admin and reason for REJECTED', () => {
|
|
expect(
|
|
validateSupportTicketStatusTransition('DEVELOPING', 'REJECTED', {
|
|
linkedTaskCount: 1,
|
|
isSuperAdmin: false,
|
|
rejectReason: 'x',
|
|
}).ok,
|
|
).toBe(false);
|
|
expect(
|
|
validateSupportTicketStatusTransition('DEVELOPING', 'REJECTED', {
|
|
linkedTaskCount: 1,
|
|
isSuperAdmin: true,
|
|
rejectReason: '',
|
|
}).ok,
|
|
).toBe(false);
|
|
});
|
|
});
|