File tree Expand file tree Collapse file tree
packages/design-system/src/helpers Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ import { addVersionToAssetUrl } from './assets'
2+
3+ describe ( 'addVersionToAssetUrl' , ( ) => {
4+ afterEach ( ( ) => {
5+ vi . unstubAllGlobals ( )
6+ vi . unstubAllEnvs ( )
7+ } )
8+
9+ it ( 'adds the package version as query parameter' , ( ) => {
10+ vi . stubEnv ( 'PACKAGE_VERSION' , '1.2.3' )
11+ expect ( addVersionToAssetUrl ( 'icons/foo.svg' ) ) . toBe ( 'icons/foo.svg?v=1.2.3' )
12+ } )
13+ it ( 'appends the package version to existing query parameters' , ( ) => {
14+ vi . stubEnv ( 'PACKAGE_VERSION' , '1.2.3' )
15+ expect ( addVersionToAssetUrl ( 'icons/foo.svg?bar=1' ) ) . toBe ( 'icons/foo.svg?bar=1&v=1.2.3' )
16+ } )
17+ it ( 'returns the url unchanged if no package version is set' , ( ) => {
18+ vi . stubEnv ( 'PACKAGE_VERSION' , '' )
19+ expect ( addVersionToAssetUrl ( 'icons/foo.svg' ) ) . toBe ( 'icons/foo.svg' )
20+ } )
21+ it ( 'returns the url unchanged if "process" is not defined' , ( ) => {
22+ vi . stubGlobal ( 'process' , undefined )
23+ expect ( addVersionToAssetUrl ( 'icons/foo.svg' ) ) . toBe ( 'icons/foo.svg' )
24+ } )
25+ } )
Original file line number Diff line number Diff line change 11// Vite injects this at build time
22declare const process : { env : { PACKAGE_VERSION ?: string } }
33
4+ function getPackageVersion ( ) : string | undefined {
5+ try {
6+ return process . env . PACKAGE_VERSION
7+ } catch {
8+ // `process` doesn't exist in the browser if the bundler doesn't inject the version (e.g. in the docs)
9+ return undefined
10+ }
11+ }
12+
413/**
514 * Adds version query parameter to asset URLs for cache busting
615 */
716export const addVersionToAssetUrl = ( url : string ) : string => {
8- const version = process . env . PACKAGE_VERSION
17+ const version = getPackageVersion ( )
918 if ( ! version ) {
1019 return url
1120 }
You can’t perform that action at this time.
0 commit comments