@@ -5,7 +5,11 @@ import config from '@js/core/config';
55import errors from '@js/core/errors' ;
66
77import { base } from '../../ui/overlay/z_index' ;
8- import { assertDevExtremeVersion , clearAssertedVersions } from '../../utils/version' ;
8+ import {
9+ assertDevExtremeVersion ,
10+ assertedVersionsCompatible ,
11+ clearAssertedVersions ,
12+ } from '../../utils/version' ;
913import {
1014 parseLicenseKey ,
1115 setLicenseCheckSkipCondition ,
@@ -535,3 +539,85 @@ describe('DevExpress license check', () => {
535539 expect ( trialPanelSpy ) . toHaveBeenCalled ( ) ;
536540 } ) ;
537541} ) ;
542+
543+ describe ( 'assertedVersions integration' , ( ) => {
544+ const packages = [ { packageName : 'test-package' , version : '1.2.3' } ] ;
545+
546+ beforeEach ( ( ) => {
547+ jest . resetModules ( ) ;
548+ jest . spyOn ( errors , 'log' ) . mockImplementation ( ( ) => { } ) ;
549+ } ) ;
550+
551+ afterEach ( ( ) => {
552+ jest . restoreAllMocks ( ) ;
553+ delete globalThis . DevExpress ;
554+ clearAssertedVersions ( ) ;
555+ } ) ;
556+
557+ describe ( 'set version in assertDevExtremeVersion' , ( ) => {
558+ test ( 'returns false and logs error when asserted versions are not compatible' , ( ) => {
559+ assertDevExtremeVersion ( 'test-package' , '1.2.3' ) ;
560+
561+ const result = assertedVersionsCompatible ( { major : 2 , minor : 0 , patch : 0 } ) ;
562+
563+ expect ( result ) . toBe ( false ) ;
564+ expect ( errors . log ) . toHaveBeenCalledWith ( 'W0023' , expect . stringContaining ( 'test-package' ) ) ;
565+ } ) ;
566+
567+ test ( 'returns true when asserted versions are compatible' , ( ) => {
568+ assertDevExtremeVersion ( 'test-package' , '1.2.3' ) ;
569+
570+ const result = assertedVersionsCompatible ( { major : 1 , minor : 2 , patch : 3 } ) ;
571+
572+ expect ( result ) . toBe ( true ) ;
573+ expect ( errors . log ) . not . toHaveBeenCalled ( ) ;
574+ } ) ;
575+
576+ test ( 'clears asserted versions from config' , ( ) => {
577+ assertDevExtremeVersion ( 'test-package-2' , '1.2.3' ) ;
578+ clearAssertedVersions ( ) ;
579+
580+ expect ( config ( ) . versionAssertions ) . toEqual ( [ ] ) ;
581+ } ) ;
582+ } ) ;
583+
584+ describe ( 'set version in DevExpress.config' , ( ) => {
585+ test ( 'returns true when all global version assertions are compatible' , ( ) => {
586+ globalThis . DevExpress = {
587+ config : {
588+ versionAssertions : packages ,
589+ } ,
590+ } ;
591+
592+ // eslint-disable-next-line
593+ const versionUtils = require ( '@js/__internal/utils/version' ) ;
594+ // eslint-disable-next-line
595+ const errors = require ( '@js/core/errors' ) . default ;
596+ jest . spyOn ( errors , 'log' ) . mockImplementation ( ( ) => { } ) ;
597+
598+ const result = versionUtils . assertedVersionsCompatible ( { major : 1 , minor : 2 , patch : 3 } ) ;
599+
600+ expect ( result ) . toBe ( true ) ;
601+ expect ( errors . log ) . not . toHaveBeenCalled ( ) ;
602+ } ) ;
603+
604+ test ( 'returns false and log error when any global version assertion is not compatible' , ( ) => {
605+ globalThis . DevExpress = {
606+ config : {
607+ versionAssertions : packages ,
608+ } ,
609+ } ;
610+
611+ // eslint-disable-next-line
612+ const versionUtils = require ( '@js/__internal/utils/version' ) ;
613+ // eslint-disable-next-line
614+ const errors = require ( '@js/core/errors' ) . default ;
615+ jest . spyOn ( errors , 'log' ) . mockImplementation ( ( ) => { } ) ;
616+
617+ const result = versionUtils . assertedVersionsCompatible ( { major : 2 , minor : 0 , patch : 0 } ) ;
618+
619+ expect ( result ) . toBe ( false ) ;
620+ expect ( errors . log ) . toHaveBeenCalledWith ( 'W0023' , expect . stringContaining ( 'test-package' ) ) ;
621+ } ) ;
622+ } ) ;
623+ } ) ;
0 commit comments