awesome-string
Version:
The ultimate JavaScript string library
56 lines (49 loc) • 2.65 kB
JavaScript
import as from '../awesome-string';
import { expect } from 'chai';
import { PRINTABLE_ASCII } from '../const';
describe('snakeCase', function() {
it('should return the snake case of a string', function() {
expect(as.snakeCase('bird')).to.be.equal('bird');
expect(as.snakeCase('BIRD')).to.be.equal('bird');
expect(as.snakeCase('BirdFlight')).to.be.equal('bird_flight');
expect(as.snakeCase('bird flight')).to.be.equal('bird_flight');
expect(as.snakeCase('San Diego Zoo Safari Park')).to.be.equal('san_diego_zoo_safari_park');
expect(as.snakeCase('-BIRD-FLIGHT-')).to.be.equal('bird_flight');
expect(as.snakeCase('__BIRD___FLIGHT___')).to.be.equal('bird_flight');
expect(as.snakeCase('Restless flycatcher')).to.be.equal('restless_flycatcher');
expect(as.snakeCase('XMLHttpRequest')).to.be.equal('xml_http_request');
expect(as.snakeCase('weight of up to 12 kg')).to.be.equal('weight_of_up_to_12_kg');
expect(as.snakeCase('/home/dmitri/projects/voca')).to.be.equal('home_dmitri_projects_voca');
expect(as.snakeCase(PRINTABLE_ASCII)).to.be.equal('0123456789_abcdefghijklmnopqrstuvwxyz_abcdefghijklmnopqrstuvwxyz');
expect(as.snakeCase('****')).to.be.equal('');
expect(as.snakeCase('****')).to.be.equal('');
expect(as.snakeCase('-----')).to.be.equal('');
expect(as.snakeCase(' ')).to.be.equal('');
expect(as.snakeCase('\n\n\n\n ***\t\t')).to.be.equal('');
expect(as.snakeCase('')).to.be.equal('');
});
it('should return the snake case of a non-latin string', function() {
expect(as.snakeCase('zborul păsării')).to.be.equal('zborul_păsării');
expect(as.snakeCase('полет птицы')).to.be.equal('полет_птицы');
expect(as.snakeCase('fuerza de sustentación')).to.be.equal('fuerza_de_sustentación');
expect(as.snakeCase('skrzydło ptaka składa się')).to.be.equal('skrzydło_ptaka_składa_się');
});
it('should not modify numbers', function() {
expect(as.snakeCase(0)).to.be.equal('0');
expect(as.snakeCase(1200)).to.be.equal('1200');
expect(as.snakeCase('8965')).to.be.equal('8965');
});
it('should return the snake case of a string representation of an object', function() {
expect(as.snakeCase(['bird flight'])).to.be.equal('bird_flight');
expect(as.snakeCase({
toString: function() {
return 'bird flight';
}
})).to.be.equal('bird_flight');
});
it('should return empty string for null or undefined', function() {
expect(as.snakeCase()).to.be.equal('');
expect(as.snakeCase(undefined)).to.be.equal('');
expect(as.snakeCase(null)).to.be.equal('');
});
});