Added support for short URLs with multi-segment slugs

This commit is contained in:
Alejandro Celaya
2022-08-07 18:19:53 +02:00
parent b1749ee2ef
commit 0c17818a24
5 changed files with 35 additions and 7 deletions

View File

@@ -1,6 +1,6 @@
import { Mock } from 'ts-mockery';
import { ShortUrl } from '../../../src/short-urls/data';
import { shortUrlDataFromShortUrl } from '../../../src/short-urls/helpers';
import { shortUrlDataFromShortUrl, urlDecodeShortCode, urlEncodeShortCode } from '../../../src/short-urls/helpers';
describe('helpers', () => {
describe('shortUrlDataFromShortUrl', () => {
@@ -25,4 +25,24 @@ describe('helpers', () => {
expect(shortUrlDataFromShortUrl(shortUrl, settings)).toEqual(expectedInitialState);
});
});
describe('urlEncodeShortCode', () => {
it.each([
['foo', 'foo'],
['foo/bar', 'foo__bar'],
['foo/bar/baz', 'foo__bar__baz'],
])('parses shortCode as expected', (shortCode, result) => {
expect(urlEncodeShortCode(shortCode)).toEqual(result);
});
});
describe('urlDecodeShortCode', () => {
it.each([
['foo', 'foo'],
['foo__bar', 'foo/bar'],
['foo__bar__baz', 'foo/bar/baz'],
])('parses shortCode as expected', (shortCode, result) => {
expect(urlDecodeShortCode(shortCode)).toEqual(result);
});
});
});