123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 |
- /* global describe,it */
- var getSlug = require('../lib/speakingurl');
- describe('getSlug config combinations', function () {
- 'use strict';
- it('should separate with configured character, with non-Base64 separator', function (done) {
- getSlug('Foo, Bar Baz', {
- separator: '*',
- maintainCase: false
- })
- .should.eql('foo*bar*baz');
- getSlug('Foo- Bar Baz', {
- separator: '*',
- maintainCase: false
- })
- .should.eql('foo-*bar*baz');
- getSlug('Foo] Bar Baz', {
- separator: '*',
- maintainCase: false
- })
- .should.eql('foo*bar*baz');
- done();
- });
- it('should separate with configured character, with only Base64 characters allowed', function (done) {
- getSlug('Foo, Bar Baz', {
- separator: '_',
- onlyBase64: true
- })
- .should.eql('foo_bar_baz');
- getSlug('Foo- Bar Baz', {
- separator: '_',
- onlyBase64: true
- })
- .should.eql('foo-_bar_baz');
- getSlug('Foo] Bar Baz', {
- separator: '_',
- onlyBase64: true
- })
- .should.eql('foo_bar_baz');
- done();
- });
- it('should separate with configured character, with smart trim', function (done) {
- getSlug('Foobarbaz, Bar Baz', {
- separator: '_',
- truncate: 12
- })
- .should.eql('foobarbaz');
- getSlug('Foobarbaz, Bar Baz', {
- separator: '_',
- truncate: 15
- })
- .should.eql('foobarbaz_bar');
- getSlug(' Foobarbaz, Bar Baz', {
- separator: '_',
- truncate: 15
- })
- .should.eql('foobarbaz_bar');
- getSlug(' Foobarbaz, Bar Baz', {
- separator: '_',
- truncate: 15
- })
- .should.eql('foobarbaz_bar');
- done();
- });
- it('should maintain case characters, with non-Base64 separator', function (done) {
- getSlug('Foo, Bar Baz', {
- maintainCase: true,
- separator: '*'
- })
- .should.eql('Foo*Bar*Baz');
- getSlug('Foo- Bar Baz', {
- maintainCase: true,
- separator: '*'
- })
- .should.eql('Foo-*Bar*Baz');
- getSlug('Foo] Bar Baz', {
- maintainCase: true,
- separator: '*'
- })
- .should.eql('Foo*Bar*Baz');
- done();
- });
- it('should maintain case characters, with only Base64 characters allowed', function (done) {
- getSlug('Foo, Bar Baz', {
- maintainCase: true,
- uric: false,
- uricNoSlash: false,
- mark: false
- })
- .should.eql('Foo-Bar-Baz');
- getSlug('Foo- Bar Baz', {
- maintainCase: true,
- uric: false,
- uricNoSlash: false,
- mark: false
- })
- .should.eql('Foo-Bar-Baz');
- getSlug('Foo] Bar Baz', {
- maintainCase: true,
- uric: false,
- uricNoSlash: false,
- mark: false
- })
- .should.eql('Foo-Bar-Baz');
- done();
- });
- it('should maintain case characters, with smart trim', function (done) {
- getSlug('Foobarbaz, Bar Baz', {
- maintainCase: true,
- truncate: 12
- })
- .should.eql('Foobarbaz');
- getSlug('Foobarbaz, Bar Baz', {
- maintainCase: true,
- truncate: 15
- })
- .should.eql('Foobarbaz-Bar');
- getSlug(' Foobarbaz, Bar Baz', {
- maintainCase: true,
- truncate: 15
- })
- .should.eql('Foobarbaz-Bar');
- getSlug(' Foobarbaz, Bar Baz', {
- maintainCase: true,
- truncate: 15
- })
- .should.eql('Foobarbaz-Bar');
- done();
- });
- it('should prefer Base64 characters only', function (done) {
- getSlug('Foo, Bar Baz', {
- uric: false,
- uricNoSlash: false,
- mark: false
- })
- .should.eql('foo-bar-baz');
- getSlug('Foo- Bar Baz', {
- uric: false,
- uricNoSlash: false,
- mark: false
- })
- .should.eql('foo-bar-baz');
- getSlug('Foo] Bar Baz', {
- uric: false,
- uricNoSlash: false,
- mark: false
- })
- .should.eql('foo-bar-baz');
- getSlug('Foo* Bar Baz', {
- uric: false,
- uricNoSlash: false,
- mark: false
- })
- .should.eql('foo-bar-baz');
- done();
- });
- });
|