mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01:00 
			
		
		
		
	chore: composition root playground service (#7710)
This commit is contained in:
		
							parent
							
								
									126dff2344
								
							
						
					
					
						commit
						987ba5ea0a
					
				| @ -10,3 +10,4 @@ export * from './project-environments/createEnvironmentService'; | ||||
| export * from './events/createEventsService'; | ||||
| export * from './instance-stats/createInstanceStatsService'; | ||||
| export * from './feature-lifecycle/createFeatureLifecycle'; | ||||
| export * from './playground/createPlaygroundService'; | ||||
|  | ||||
							
								
								
									
										50
									
								
								src/lib/features/playground/createPlaygroundService.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								src/lib/features/playground/createPlaygroundService.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,50 @@ | ||||
| import type { Db, IUnleashConfig } from '../../server-impl'; | ||||
| import { PlaygroundService } from './playground-service'; | ||||
| import { | ||||
|     createFakeFeatureToggleService, | ||||
|     createFeatureToggleService, | ||||
| } from '../feature-toggle/createFeatureToggleService'; | ||||
| import { | ||||
|     createFakePrivateProjectChecker, | ||||
|     createPrivateProjectChecker, | ||||
| } from '../private-project/createPrivateProjectChecker'; | ||||
| import { SegmentReadModel } from '../segment/segment-read-model'; | ||||
| import { FakeSegmentReadModel } from '../segment/fake-segment-read-model'; | ||||
| 
 | ||||
| export const createPlaygroundService = ( | ||||
|     db: Db, | ||||
|     config: IUnleashConfig, | ||||
| ): PlaygroundService => { | ||||
|     const segmentReadModel = new SegmentReadModel(db); | ||||
|     const privateProjectChecker = createPrivateProjectChecker(db, config); | ||||
|     const featureToggleServiceV2 = createFeatureToggleService(db, config); | ||||
| 
 | ||||
|     const playgroundService = new PlaygroundService( | ||||
|         config, | ||||
|         { | ||||
|             featureToggleServiceV2, | ||||
|             privateProjectChecker, | ||||
|         }, | ||||
|         segmentReadModel, | ||||
|     ); | ||||
| 
 | ||||
|     return playgroundService; | ||||
| }; | ||||
| 
 | ||||
| export const createFakePlaygroundService = (config: IUnleashConfig) => { | ||||
|     const segmentReadModel = new FakeSegmentReadModel(); | ||||
|     const privateProjectChecker = createFakePrivateProjectChecker(); | ||||
|     const featureToggleServiceV2 = | ||||
|         createFakeFeatureToggleService(config).featureToggleService; | ||||
| 
 | ||||
|     const playgroundService = new PlaygroundService( | ||||
|         config, | ||||
|         { | ||||
|             featureToggleServiceV2, | ||||
|             privateProjectChecker, | ||||
|         }, | ||||
|         segmentReadModel, | ||||
|     ); | ||||
| 
 | ||||
|     return playgroundService; | ||||
| }; | ||||
| @ -1,7 +1,7 @@ | ||||
| import dbInit, { type ITestDb } from '../../../test/e2e/helpers/database-init'; | ||||
| import { | ||||
|     type IUnleashTest, | ||||
|     setupApp, | ||||
|     setupAppWithCustomConfig, | ||||
| } from '../../../test/e2e/helpers/test-helper'; | ||||
| import type { IUnleashStores } from '../../types'; | ||||
| import getLogger from '../../../test/fixtures/no-logger'; | ||||
| @ -23,7 +23,7 @@ beforeAll(async () => { | ||||
| 
 | ||||
|     await stores.featureToggleStore.create('default', flag); | ||||
| 
 | ||||
|     app = await setupApp(stores); | ||||
|     app = await setupAppWithCustomConfig(stores, {}, db.rawDatabase); | ||||
| }); | ||||
| 
 | ||||
| afterAll(async () => { | ||||
|  | ||||
| @ -137,6 +137,10 @@ import { | ||||
| import { IntegrationEventsService } from '../features/integration-events/integration-events-service'; | ||||
| import { FeatureCollaboratorsReadModel } from '../features/feature-toggle/feature-collaborators-read-model'; | ||||
| import { FakeFeatureCollaboratorsReadModel } from '../features/feature-toggle/fake-feature-collaborators-read-model'; | ||||
| import { | ||||
|     createFakePlaygroundService, | ||||
|     createPlaygroundService, | ||||
| } from '../features/playground/createPlaygroundService'; | ||||
| 
 | ||||
| export const createServices = ( | ||||
|     stores: IUnleashStores, | ||||
| @ -319,14 +323,9 @@ export const createServices = ( | ||||
|     const userSplashService = new UserSplashService(stores, config); | ||||
|     const openApiService = new OpenApiService(config); | ||||
|     const clientSpecService = new ClientSpecService(config); | ||||
|     const playgroundService = new PlaygroundService( | ||||
|         config, | ||||
|         { | ||||
|             featureToggleServiceV2, | ||||
|             privateProjectChecker, | ||||
|         }, | ||||
|         segmentReadModel, | ||||
|     ); | ||||
|     const playgroundService = db | ||||
|         ? createPlaygroundService(db, config) | ||||
|         : createFakePlaygroundService(config); | ||||
| 
 | ||||
|     const configurationRevisionService = | ||||
|         ConfigurationRevisionService.getInstance(stores, config); | ||||
|  | ||||
| @ -2,7 +2,10 @@ import fc, { type Arbitrary } from 'fast-check'; | ||||
| import { clientFeature, clientFeatures } from '../../../arbitraries.test'; | ||||
| import { generate as generateRequest } from '../../../../lib/openapi/spec/playground-request-schema.test'; | ||||
| import dbInit, { type ITestDb } from '../../helpers/database-init'; | ||||
| import { type IUnleashTest, setupAppWithAuth } from '../../helpers/test-helper'; | ||||
| import { | ||||
|     type IUnleashTest, | ||||
|     setupAppWithCustomConfig, | ||||
| } from '../../helpers/test-helper'; | ||||
| import { type FeatureToggle, WeightType } from '../../../../lib/types/model'; | ||||
| import getLogger from '../../../fixtures/no-logger'; | ||||
| import { | ||||
| @ -21,7 +24,7 @@ let token: IApiToken; | ||||
| 
 | ||||
| beforeAll(async () => { | ||||
|     db = await dbInit('playground_api_serial', getLogger); | ||||
|     app = await setupAppWithAuth(db.stores); | ||||
|     app = await setupAppWithCustomConfig(db.stores, {}, db.rawDatabase); | ||||
|     const { apiTokenService } = app.services; | ||||
|     token = await apiTokenService.createApiTokenWithProjects({ | ||||
|         type: ApiTokenType.ADMIN, | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user