Son CV dans un terminal web en Javascript! https://terminal-cv.gregandev.fr
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
terminal-cv/node_modules/@parcel/utils/test/replaceBundleReferences.tes...

269 lines
6.3 KiB

// @flow strict-local
import type {NamedBundle, Dependency} from '@parcel/types';
import assert from 'assert';
import {getURLReplacement} from '../src/replaceBundleReferences';
describe('replace bundle references', () => {
it('Query params and named pipeline, relative', () => {
// $FlowFixMe
let fromBundle: NamedBundle = {
filePath: '/user/dist/reformat.html',
name: 'reformat.html',
// $FlowFixMe
target: {
distDir: '/user/dist',
publicUrl: '/',
},
};
// $FlowFixMe
let toBundle: NamedBundle = {
filePath:
'/user/dist/image.HASH_REF_87f9d66c16c2216ccc7e5664cf089305.webp',
name: 'image.HASH_REF_87f9d66c16c2216ccc7e5664cf089305.webp',
// $FlowFixMe
target: {
distDir: '/user/dist',
publicUrl: '/',
},
};
// $FlowFixMe
let dependency: Dependency = {
id: '074b36596e3147e900a8ad17ceb5c90b',
specifier: 'url:./image.jpg?as=webp',
specifierType: 'esm',
};
let result = getURLReplacement({
dependency,
fromBundle,
toBundle,
relative: true,
});
assert.equal(
result.to,
'image.HASH_REF_87f9d66c16c2216ccc7e5664cf089305.webp',
);
assert.equal(result.from, '074b36596e3147e900a8ad17ceb5c90b');
});
it('Query params and named pipeline, absolute', () => {
// $FlowFixMe
let fromBundle: NamedBundle = {
filePath: '/user/dist/reformat.html',
name: 'reformat.html',
// $FlowFixMe
target: {
distDir: '/user/dist',
publicUrl: '/',
},
};
// $FlowFixMe
let toBundle: NamedBundle = {
filePath:
'/user/dist/image.HASH_REF_87f9d66c16c2216ccc7e5664cf089305.webp',
name: 'image.HASH_REF_87f9d66c16c2216ccc7e5664cf089305.webp',
// $FlowFixMe
target: {
distDir: '/user/dist',
publicUrl: '/',
},
};
// $FlowFixMe
let dependency: Dependency = {
id: '074b36596e3147e900a8ad17ceb5c90b',
specifier: 'url:./image.jpg?as=webp',
specifierType: 'esm',
};
let result = getURLReplacement({
dependency,
fromBundle,
toBundle,
relative: false,
});
assert.equal(
result.to,
'/image.HASH_REF_87f9d66c16c2216ccc7e5664cf089305.webp',
);
assert.equal(result.from, '074b36596e3147e900a8ad17ceb5c90b');
});
it('Custom Public URL', () => {
// $FlowFixMe
let fromBundle: NamedBundle = {
filePath: '/user/dist/reformat.html',
name: 'reformat.html',
// $FlowFixMe
target: {
distDir: '/user/dist',
publicUrl: 'https://test.com/static',
},
};
// $FlowFixMe
let toBundle: NamedBundle = {
filePath:
'/user/dist/image.HASH_REF_87f9d66c16c2216ccc7e5664cf089305.webp',
name: 'image.HASH_REF_87f9d66c16c2216ccc7e5664cf089305.webp',
// $FlowFixMe
target: {
distDir: '/user/dist',
publicUrl: 'https://test.com/static',
},
};
// $FlowFixMe
let dependency: Dependency = {
id: '074b36596e314797845a8ad17ceb5c9b',
specifier: './image.jpg',
specifierType: 'esm',
};
let result = getURLReplacement({
dependency,
fromBundle,
toBundle,
relative: false,
});
assert.equal(
result.to,
'https://test.com/static/image.HASH_REF_87f9d66c16c2216ccc7e5664cf089305.webp',
);
assert.equal(result.from, '074b36596e314797845a8ad17ceb5c9b');
});
it('Relative with folders in between', () => {
// $FlowFixMe
let fromBundle: NamedBundle = {
filePath: '/user/dist/reformat.html',
name: 'reformat.html',
// $FlowFixMe
target: {
distDir: '/user/dist',
publicUrl: 'https://test.com/static',
},
};
// $FlowFixMe
let toBundle: NamedBundle = {
filePath:
'/user/dist/assets/image.HASH_REF_87f9d66c16c2216ccc7e5664cf089305.webp',
name: 'image.HASH_REF_87f9d66c16c2216ccc7e5664cf089305.webp',
// $FlowFixMe
target: {
distDir: '/user/dist/assets',
publicUrl: 'https://test.com/static',
},
};
// $FlowFixMe
let dependency: Dependency = {
id: '074b36596e3147e900a8ad17ceb5c90b',
specifier: 'url:./image.jpg?as=webp',
specifierType: 'esm',
};
let result = getURLReplacement({
dependency,
fromBundle,
toBundle,
relative: true,
});
assert.equal(
result.to,
'assets/image.HASH_REF_87f9d66c16c2216ccc7e5664cf089305.webp',
);
assert.equal(result.from, '074b36596e3147e900a8ad17ceb5c90b');
});
it('should work with bundle names with colons, relative', () => {
// $FlowFixMe
let fromBundle: NamedBundle = {
filePath: '/user/dist/reformat.html',
name: 'reformat.html',
// $FlowFixMe
target: {
distDir: '/user/dist',
publicUrl: '/',
},
};
// $FlowFixMe
let toBundle: NamedBundle = {
filePath: '/user/dist/a:b:c.html',
name: 'a:b:c.html',
// $FlowFixMe
target: {
distDir: '/user/dist',
publicUrl: '/',
},
};
// $FlowFixMe
let dependency: Dependency = {
id: '074b36596e3147e900a8ad17ceb5c90b',
specifier: './a:b:c.html',
specifierType: 'esm',
};
let result = getURLReplacement({
dependency,
fromBundle,
toBundle,
relative: true,
});
assert.equal(result.to, './a:b:c.html');
});
it('should work with bundle names with colons, absolute', () => {
// $FlowFixMe
let fromBundle: NamedBundle = {
filePath: '/user/dist/reformat.html',
name: 'reformat.html',
// $FlowFixMe
target: {
distDir: '/user/dist',
publicUrl: '/',
},
};
// $FlowFixMe
let toBundle: NamedBundle = {
filePath: '/user/dist/a:b:c.html',
name: 'a:b:c.html',
// $FlowFixMe
target: {
distDir: '/user/dist',
publicUrl: '/',
},
};
// $FlowFixMe
let dependency: Dependency = {
id: '074b36596e3147e900a8ad17ceb5c90b',
specifier: './a:b:c.html',
specifierType: 'esm',
};
let result = getURLReplacement({
dependency,
fromBundle,
toBundle,
relative: false,
});
assert.equal(result.to, '/a:b:c.html');
});
});