generate()
Generates random valid RUT numbers for testing and development purposes.
Basic Usage
import { generate } from 'rut.ts'
const randomRut = generate()
console.log(randomRut) // '18.972.631-7'Type Signature
function generate(): stringParameters
None. The function takes no parameters.
Return Value
Returns a string containing:
- A randomly generated RUT
- Already formatted with dots and hyphen (
XX.XXX.XXX-Y) - Guaranteed to be valid (passes
validate()) - Body in range: 10,000,000 - 99,999,999
Examples
Generate Single RUT
import { generate } from 'rut.ts'
const rut = generate()
console.log(rut) // e.g., '45.123.789-2'Generate Multiple RUTs
import { generate } from 'rut.ts'
const ruts = Array.from({ length: 10 }, () => generate())
console.log(ruts)
// ['18.972.631-7', '45.123.789-2', ...]Generate for Testing
import { generate, validate } from 'rut.ts'
// Generate test data
const testRuts = Array.from({ length: 100 }, () => generate())
// All generated RUTs are valid
testRuts.forEach(rut => {
console.assert(validate(rut) === true)
})Seed Test Database
import { generate, decompose } from 'rut.ts'
// Create test users with valid RUTs
const testUsers = Array.from({ length: 50 }, (_, i) => {
const rut = generate()
const { body, verifier } = decompose(rut)
return {
id: i + 1,
name: `Test User ${i + 1}`,
rut: rut,
rutBody: body,
rutVerifier: verifier
}
})
await db.users.insertMany(testUsers)Properties
All generated RUTs have these properties:
- β
Valid: Pass
validate()without errors - β
Formatted: Include dots and hyphen (
XX.XXX.XXX-Y) - β Realistic: Body in range 10,000,000 - 99,999,999
- β Random: Different on each call
- β
Non-suspicious: Pass
validate(rut, { strict: true }) - β 8-digit body: Always generates 8-digit bodies
Format
Generated RUTs follow this pattern:
XX.XXX.XXX-Y
ββ β β ββ Verifier digit (0-9 or K)
ββ β βββββ Last 3 digits of body
ββ βββββββββ Middle 3 digits of body
βββββββββββββ First 2 digits of body
βββββββββββββ Always 8 digits total in bodyUse Cases
- β Generate test data for unit tests
- β Populate development databases
- β Create sample data for demos
- β Seed databases with realistic RUTs
- β Stress testing validation logic
Examples in Testing
import { generate, validate } from 'rut.ts'
describe('RUT validation', () => {
test('validates 1000 generated RUTs', () => {
const ruts = Array.from({ length: 1000 }, () => generate())
ruts.forEach(rut => {
expect(validate(rut)).toBe(true)
})
})
test('generated RUTs pass strict validation', () => {
const ruts = Array.from({ length: 100 }, () => generate())
ruts.forEach(rut => {
expect(validate(rut, { strict: true })).toBe(true)
})
})
})Notes
- Each call generates a different RUT (random)
- Generated RUTs use realistic number ranges
- Verifier is automatically calculated using Modulo 11
- Output is always formatted with dots and hyphen
Related Functions
validate()- Validate generated RUTscalculateVerifier()- Calculate verifier manuallyformat()- Format RUTs
Last updated on