12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- import {reactHooks} from 'sentry-test/reactTestingLibrary';
- import ProjectsStore from 'sentry/stores/projectsStore';
- import {ServerSideSamplingStore} from 'sentry/stores/serverSideSamplingStore';
- import {useRecommendedSdkUpgrades} from 'sentry/views/settings/project/server-side-sampling/utils/useRecommendedSdkUpgrades';
- import {mockedSamplingSdkVersions} from '../testUtils';
- describe('useRecommendedSdkUpgrades', function () {
- it('works', function () {
- ProjectsStore.loadInitialData([
- TestStubs.Project({id: '1', slug: 'sentry'}),
- TestStubs.Project({id: '2', slug: 'java'}),
- TestStubs.Project({id: '3', slug: 'angular'}),
- ]);
- ServerSideSamplingStore.fetchSdkVersionsSuccess(mockedSamplingSdkVersions);
- const {result} = reactHooks.renderHook(() =>
- useRecommendedSdkUpgrades({orgSlug: 'org-slug', projectId: '3'})
- );
- expect(result.current.recommendedSdkUpgrades.length).toBe(2);
- expect(result.current.recommendedSdkUpgrades).toEqual([
- {
- latestSDKName: 'sentry.java',
- latestSDKVersion: '1.0.2',
- project: expect.objectContaining({
- features: [],
- slug: 'java',
- }),
- },
- {
- latestSDKName: 'sentry.python',
- latestSDKVersion: '1.0.2',
- project: expect.objectContaining({
- features: [],
- slug: 'sentry',
- }),
- },
- ]);
- expect(result.current.incompatibleProjects.length).toBe(1);
- expect(result.current.incompatibleProjects).toEqual([
- expect.objectContaining({
- features: [],
- slug: 'angular',
- }),
- ]);
- expect(result.current.isProjectIncompatible).toBe(true);
- expect(result.current.affectedProjects.length).toBe(3);
- });
- });
|