@@ -19,6 +19,7 @@ vi.mock('../loadScript');
1919
2020setClerkJsLoadingErrorPackageName ( '@clerk/react' ) ;
2121const jsPackageMajorVersion = getMajorVersion ( JS_PACKAGE_VERSION ) ;
22+ const uiPackageMajorVersion = getMajorVersion ( UI_PACKAGE_VERSION ) ;
2223
2324const mockClerk = {
2425 status : 'ready' ,
@@ -318,7 +319,7 @@ describe('loadClerkUiScript(options)', () => {
318319 expect ( result ) . toBeNull ( ) ;
319320 expect ( loadScript ) . toHaveBeenCalledWith (
320321 expect . stringContaining (
321- `https://foo-bar-13.clerk.accounts.dev/npm/@clerk/ui@${ jsPackageMajorVersion } /dist/ui.browser.js` ,
322+ `https://foo-bar-13.clerk.accounts.dev/npm/@clerk/ui@${ uiPackageMajorVersion } /dist/ui.browser.js` ,
322323 ) ,
323324 expect . objectContaining ( {
324325 async : true ,
@@ -401,13 +402,13 @@ describe('clerkUiScriptUrl()', () => {
401402 test ( 'constructs URL correctly for development key' , ( ) => {
402403 const result = clerkUiScriptUrl ( { publishableKey : mockDevPublishableKey } ) ;
403404 expect ( result ) . toBe (
404- `https://foo-bar-13.clerk.accounts.dev/npm/@clerk/ui@${ jsPackageMajorVersion } /dist/ui.browser.js` ,
405+ `https://foo-bar-13.clerk.accounts.dev/npm/@clerk/ui@${ uiPackageMajorVersion } /dist/ui.browser.js` ,
405406 ) ;
406407 } ) ;
407408
408409 test ( 'constructs URL correctly for production key' , ( ) => {
409410 const result = clerkUiScriptUrl ( { publishableKey : mockProdPublishableKey } ) ;
410- expect ( result ) . toBe ( `https://example.clerk.com/npm/@clerk/ui@${ jsPackageMajorVersion } /dist/ui.browser.js` ) ;
411+ expect ( result ) . toBe ( `https://example.clerk.com/npm/@clerk/ui@${ uiPackageMajorVersion } /dist/ui.browser.js` ) ;
411412 } ) ;
412413
413414 test ( 'uses provided clerkUiVersion' , ( ) => {
@@ -418,7 +419,23 @@ describe('clerkUiScriptUrl()', () => {
418419 test ( 'uses latest as default version when not specified' , ( ) => {
419420 const result = clerkUiScriptUrl ( { publishableKey : mockDevPublishableKey } ) ;
420421 // When no version is specified, versionSelector should return the major version
421- expect ( result ) . toContain ( `/npm/@clerk/ui@${ jsPackageMajorVersion } /` ) ;
422+ expect ( result ) . toContain ( `/npm/@clerk/ui@${ uiPackageMajorVersion } /` ) ;
423+ } ) ;
424+
425+ test ( 'uses UI_PACKAGE_VERSION independently from JS_PACKAGE_VERSION' , ( ) => {
426+ // Verify that clerkUiScriptUrl uses UI_PACKAGE_VERSION, not JS_PACKAGE_VERSION
427+ const uiResult = clerkUiScriptUrl ( { publishableKey : mockDevPublishableKey } ) ;
428+ const jsResult = clerkJsScriptUrl ( { publishableKey : mockDevPublishableKey } ) ;
429+
430+ // UI script should use UI package version
431+ expect ( uiResult ) . toContain ( `/npm/@clerk/ui@${ uiPackageMajorVersion } /` ) ;
432+ // JS script should use JS package version
433+ expect ( jsResult ) . toContain ( `/npm/@clerk/clerk-js@${ jsPackageMajorVersion } /` ) ;
434+
435+ // They should be using their respective versions (which may differ)
436+ // This test ensures we don't accidentally use JS version for UI
437+ expect ( uiResult ) . not . toContain ( '@clerk/clerk-js' ) ;
438+ expect ( jsResult ) . not . toContain ( '@clerk/ui' ) ;
422439 } ) ;
423440} ) ;
424441
0 commit comments