From 55aa15d96d1ff2057cafb644f24aed1182a5cb1d Mon Sep 17 00:00:00 2001 From: Mateusz Kwasniewski Date: Wed, 26 Jul 2023 09:39:40 +0200 Subject: [PATCH] test: default strategy stickiness (#4341) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## About the changes Unit tests for the default strategy and fallback strategy ### Important files ## Discussion points --- .../EditDefaultStrategy.test.tsx | 55 +++++++++++++++++++ .../EditDefaultStrategy.tsx | 2 +- 2 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 frontend/src/component/project/Project/ProjectSettings/ProjectDefaultStrategySettings/ProjectEnvironment/ProjectEnvironmentDefaultStrategy/EditDefaultStrategy.test.tsx diff --git a/frontend/src/component/project/Project/ProjectSettings/ProjectDefaultStrategySettings/ProjectEnvironment/ProjectEnvironmentDefaultStrategy/EditDefaultStrategy.test.tsx b/frontend/src/component/project/Project/ProjectSettings/ProjectDefaultStrategySettings/ProjectEnvironment/ProjectEnvironmentDefaultStrategy/EditDefaultStrategy.test.tsx new file mode 100644 index 0000000000..bb413c7bb0 --- /dev/null +++ b/frontend/src/component/project/Project/ProjectSettings/ProjectDefaultStrategySettings/ProjectEnvironment/ProjectEnvironmentDefaultStrategy/EditDefaultStrategy.test.tsx @@ -0,0 +1,55 @@ +import { screen } from '@testing-library/react'; +import { render } from 'utils/testRenderer'; +import React from 'react'; +import { useDefaultStrategy } from './EditDefaultStrategy'; +import { testServerRoute, testServerSetup } from 'utils/testServer'; + +const server = testServerSetup(); + +const RenderStrategy = () => { + const { strategy } = useDefaultStrategy('default', 'development'); + + return
{strategy?.name ?? 'no-default-strategy'}
; +}; + +const RenderFallbackStrategy = () => { + const { defaultStrategyFallback } = useDefaultStrategy( + 'default', + 'development' + ); + + return
{defaultStrategyFallback.parameters.stickiness}
; +}; + +test('should render default strategy from project', async () => { + testServerRoute(server, '/api/admin/projects/default', { + environments: [ + { + environment: 'development', + defaultStrategy: { name: 'my-strategy' }, + }, + ], + }); + render(); + + await screen.findByText('my-strategy'); +}); + +test('should render fallback default strategy with project default stickiness', async () => { + testServerRoute(server, '/api/admin/projects/default', { + defaultStickiness: 'clientId', + environments: [], + }); + render(); + + await screen.findByText('clientId'); +}); + +test('should render fallback default strategy with no project default stickiness', async () => { + testServerRoute(server, '/api/admin/projects/default', { + environments: [], + }); + render(); + + await screen.findByText('default'); +}); diff --git a/frontend/src/component/project/Project/ProjectSettings/ProjectDefaultStrategySettings/ProjectEnvironment/ProjectEnvironmentDefaultStrategy/EditDefaultStrategy.tsx b/frontend/src/component/project/Project/ProjectSettings/ProjectDefaultStrategySettings/ProjectEnvironment/ProjectEnvironmentDefaultStrategy/EditDefaultStrategy.tsx index 8899a6efab..99eaea6bed 100644 --- a/frontend/src/component/project/Project/ProjectSettings/ProjectDefaultStrategySettings/ProjectEnvironment/ProjectEnvironmentDefaultStrategy/EditDefaultStrategy.tsx +++ b/frontend/src/component/project/Project/ProjectSettings/ProjectDefaultStrategySettings/ProjectEnvironment/ProjectEnvironmentDefaultStrategy/EditDefaultStrategy.tsx @@ -31,7 +31,7 @@ export const useDefaultStrategy = ( constraints: [], parameters: { rollout: '100', - stickiness: project.defaultStickiness, + stickiness: project.defaultStickiness || 'default', groupId: '', }, };