@@ -9,6 +9,8 @@ import sinon = require('sinon');
99import { PreMigrate } from '../../src/migration/premigrate' ;
1010import { Logger } from '../../src/utils/logger' ;
1111import { PromptUtil } from '../../src/utils/promptUtil' ;
12+ import { OmniStudioMetadataCleanupService } from '../../src/utils/config/OmniStudioMetadataCleanupService' ;
13+ import * as dataModelService from '../../src/utils/dataModelService' ;
1214
1315describe ( 'PreMigrate - handleAllVersionsPrerequisites for Standard Data Model' , ( ) => {
1416 let preMigrate : PreMigrate ;
@@ -121,4 +123,23 @@ describe('PreMigrate - handleAllVersionsPrerequisites for Standard Data Model',
121123 expect ( processExitStub . called ) . to . be . false ;
122124 } ) ;
123125 } ) ;
126+
127+ describe ( 'OmniStudio metadata prerequisites' , ( ) => {
128+ it ( 'should log cleanup required and exit when config tables are not empty' , async ( ) => {
129+ // Arrange
130+ getMessageStub
131+ . withArgs ( 'cleanupMetadataTablesRequired' )
132+ . returns ( 'Omnistudio configuration tables contain records.' ) ;
133+ sandbox . stub ( dataModelService , 'isStandardDataModelWithMetadataAPIEnabled' ) . returns ( false ) ;
134+ sandbox . stub ( preMigrate , 'getOmniStudioMetadataEnableConsent' ) . resolves ( true ) ;
135+ sandbox . stub ( OmniStudioMetadataCleanupService . prototype , 'hasCleanOmniStudioMetadataTables' ) . resolves ( false ) ;
136+
137+ // Act
138+ await preMigrate . handleOmnistudioMetadataPrerequisites ( ) ;
139+
140+ // Assert
141+ expect ( logErrorStub . calledWith ( 'Omnistudio configuration tables contain records.' ) ) . to . be . true ;
142+ expect ( processExitStub . calledWith ( 1 ) ) . to . be . true ;
143+ } ) ;
144+ } ) ;
124145} ) ;
0 commit comments