Files
nullcart/backend/src/validation/decorators/isEnabledPaymentMethods.spec.ts
T

36 lines
976 B
TypeScript

import { validateSync } from 'class-validator';
import { IsEnabledPaymentMethods } from './isEnabledPaymentMethods';
class TestDto {
@IsEnabledPaymentMethods()
PAYMENT_METHODS_ENABLED: string;
}
const validateMethods = (value: string) => {
const dto = Object.assign(new TestDto(), { PAYMENT_METHODS_ENABLED: value });
return validateSync(dto);
};
describe('IsEnabledPaymentMethods', () => {
it('accepts xmr only', () => {
expect(validateMethods('xmr')).toHaveLength(0);
});
it('accepts xmr and btc', () => {
expect(validateMethods('xmr,btc')).toHaveLength(0);
});
it('rejects empty string', () => {
expect(validateMethods('').length).toBeGreaterThan(0);
});
it('rejects unsupported methods', () => {
expect(validateMethods('eth').length).toBeGreaterThan(0);
});
it('rejects duplicate methods', () => {
expect(validateMethods('xmr,xmr').length).toBeGreaterThan(0);
});
});