is-valid-abn
Version:
Check if a number is a valid Australian Business Number (ABN)
66 lines (45 loc) • 1.55 kB
text/typescript
import { describe, expect, it } from 'vitest';
import isValidABN from './index.js';
describe('isValidABN', () => {
it('returns false for no input', () => {
// @ts-expect-error-next-line
const result = isValidABN();
expect(result).toBe(false);
});
it('returns false for non-numeric input', () => {
const result = isValidABN('xxelephants');
expect(result).toBe(false);
});
it('returns false for partially numeric input', () => {
const result = isValidABN('83914571673fox');
expect(result).toBe(false);
});
it('returns false for partially numeric input', () => {
const result = isValidABN('83914571673FOX');
expect(result).toBe(false);
});
it('returns false for invalid input with invalid length', () => {
const result = isValidABN('123');
expect(result).toBe(false);
});
it('returns false for invalid input with valid length', () => {
const result = isValidABN('12345678901');
expect(result).toBe(false);
});
it('returns true for valid numeric input', () => {
const result = isValidABN(83914571673);
expect(result).toBe(true);
});
it('returns true for valid input', () => {
const result = isValidABN('83914571673');
expect(result).toBe(true);
});
it('returns true for valid input with spaces', () => {
const result = isValidABN('83 914 571 673');
expect(result).toBe(true);
});
it('returns true for valid input with dashes', () => {
const result = isValidABN('83-914-571-673');
expect(result).toBe(true);
});
});