UNPKG

@uploadcare/file-uploader

Version:

Building blocks for Uploadcare products integration

92 lines (84 loc) 2.55 kB
import { parseCdnUrl } from './parseCdnUrl'; import { expect } from '@esm-bundle/chai'; describe('parseCdnUrl', () => { it('should should work', () => { expect( parseCdnUrl({ url: 'https://cdn.example.com/12345678-1234-5678-1234-567812345678/', cdnBase: 'https://cdn.example.com', }), ).to.deep.equal({ uuid: '12345678-1234-5678-1234-567812345678', cdnUrlModifiers: '', filename: null, }); }); it('should parse filename', () => { expect( parseCdnUrl({ url: 'https://cdn.example.com/12345678-1234-5678-1234-567812345678/bar.jpg', cdnBase: 'https://cdn.example.com', }), ).to.deep.equal({ uuid: '12345678-1234-5678-1234-567812345678', cdnUrlModifiers: '', filename: 'bar.jpg', }); }); it('should parse cdn url modifiers', () => { expect( parseCdnUrl({ url: 'https://cdn.example.com/12345678-1234-5678-1234-567812345678/-/foo/bar/baz.jpg', cdnBase: 'https://cdn.example.com', }), ).to.deep.equal({ uuid: '12345678-1234-5678-1234-567812345678', cdnUrlModifiers: '-/foo/bar/', filename: 'baz.jpg', }); }); it('should return null if cdn base is different', () => { expect( parseCdnUrl({ url: 'https://cdn.example.com/12345678-1234-5678-1234-567812345678/', cdnBase: 'https://cdn2.example.com', }), ).to.equal(null); }); it('should strip slashes from the end cdn base before comparing', () => { expect( parseCdnUrl({ url: 'https://cdn.example.com/12345678-1234-5678-1234-567812345678/', cdnBase: 'https://cdn.example.com/', }), ).to.deep.equal({ uuid: '12345678-1234-5678-1234-567812345678', cdnUrlModifiers: '', filename: null, }); }); it('should not compare the protocol', () => { expect( parseCdnUrl({ url: 'https://cdn.example.com/12345678-1234-5678-1234-567812345678/', cdnBase: 'http://cdn.example.com', }), ).to.deep.equal({ uuid: '12345678-1234-5678-1234-567812345678', cdnUrlModifiers: '', filename: null, }); }); it('should fallback to ucarecdn.com if cdnBase is not matched', () => { expect( parseCdnUrl({ url: 'https://ucarecdn.com/12345678-1234-5678-1234-567812345678/', cdnBase: 'https://cdn.example.com', }), ).to.deep.equal({ uuid: '12345678-1234-5678-1234-567812345678', cdnUrlModifiers: '', filename: null, }); }); });