twenty / packages /twenty-shared /src /utils /url /__tests__ /buildSignedPath.test.ts
Jules
Initial clean CRM deployment with prebuilt assets
d9494a5
Raw
History Blame Contribute Delete
1.94 kB
import { buildSignedPath } from '@/utils';
describe('buildSignedPath', () => {
it('should build a signed path', () => {
expect(
buildSignedPath({ path: 'folder/test.txt', token: 'tokenValue' }),
).toBe('folder/tokenValue/test.txt');
});
it('should build a signed path with original subFolder', () => {
expect(
buildSignedPath({
path: 'folder/original/test.txt',
token: 'tokenValue',
}),
).toBe('folder/original/tokenValue/test.txt');
});
it('should build a signed path with multiple dots filename', () => {
expect(
buildSignedPath({
path: 'folder/test.data.12032026.txt',
token: 'tokenValue',
}),
).toBe('folder/tokenValue/test.data.12032026.txt');
});
it('should throw when building signed path with missing filename', () => {
expect(() =>
buildSignedPath({
path: 'folder/',
token: 'tokenValue',
}),
).toThrow(
"Filename empty: cannot build signed path from folderPath 'folder/'",
);
});
it('should throw when building signed path with empty path', () => {
expect(() =>
buildSignedPath({
path: '',
token: 'tokenValue',
}),
).toThrow("Filename empty: cannot build signed path from folderPath ''");
});
it('should ignore absolute https urls', () => {
expect(
buildSignedPath({
path: 'https://twentyhq.github.io/placeholder-images/workspaces/twenty-logo.png',
token: 'tokenValue',
}),
).toBe(
'https://twentyhq.github.io/placeholder-images/workspaces/twenty-logo.png',
);
});
it('should ignore absolute http urls', () => {
expect(
buildSignedPath({
path: 'http://twentyhq.github.io/placeholder-images/workspaces/twenty-logo.png',
token: 'tokenValue',
}),
).toBe(
'http://twentyhq.github.io/placeholder-images/workspaces/twenty-logo.png',
);
});
});