Skip to content

Commit c794fbe

Browse files
committed
ref(onboarding): Address PR feedback on SCM provider tests
Replace factory functions with module-level constants and use exact strings instead of regex in test selectors.
1 parent 2aea30e commit c794fbe

File tree

1 file changed

+32
-49
lines changed

1 file changed

+32
-49
lines changed

static/app/views/onboarding/components/scmProviderPills.spec.tsx

Lines changed: 32 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -3,48 +3,38 @@ import {GitLabIntegrationProviderFixture} from 'sentry-fixture/gitlabIntegration
33

44
import {render, screen, userEvent} from 'sentry-test/reactTestingLibrary';
55

6-
import type {IntegrationProvider} from 'sentry/types/integrations';
7-
86
import {ScmProviderPills} from './scmProviderPills';
97

10-
function makeBitbucketProvider(): IntegrationProvider {
11-
return GitHubIntegrationProviderFixture({
12-
key: 'bitbucket',
13-
slug: 'bitbucket',
14-
name: 'Bitbucket',
15-
});
16-
}
8+
const bitbucketProvider = GitHubIntegrationProviderFixture({
9+
key: 'bitbucket',
10+
slug: 'bitbucket',
11+
name: 'Bitbucket',
12+
});
1713

18-
function makeBitbucketServerProvider(): IntegrationProvider {
19-
return GitHubIntegrationProviderFixture({
20-
key: 'bitbucket_server',
21-
slug: 'bitbucket_server',
22-
name: 'Bitbucket Server',
23-
});
24-
}
14+
const bitbucketServerProvider = GitHubIntegrationProviderFixture({
15+
key: 'bitbucket_server',
16+
slug: 'bitbucket_server',
17+
name: 'Bitbucket Server',
18+
});
2519

26-
function makeGitHubEnterpriseProvider(): IntegrationProvider {
27-
return GitHubIntegrationProviderFixture({
28-
key: 'github_enterprise',
29-
slug: 'github_enterprise',
30-
name: 'GitHub Enterprise',
31-
});
32-
}
20+
const gitHubEnterpriseProvider = GitHubIntegrationProviderFixture({
21+
key: 'github_enterprise',
22+
slug: 'github_enterprise',
23+
name: 'GitHub Enterprise',
24+
});
3325

34-
function makeAzureDevOpsProvider(): IntegrationProvider {
35-
return GitHubIntegrationProviderFixture({
36-
key: 'vsts',
37-
slug: 'vsts',
38-
name: 'Azure DevOps',
39-
});
40-
}
26+
const azureDevOpsProvider = GitHubIntegrationProviderFixture({
27+
key: 'vsts',
28+
slug: 'vsts',
29+
name: 'Azure DevOps',
30+
});
4131

4232
describe('ScmProviderPills', () => {
4333
it('renders primary providers as top-level buttons', () => {
4434
const providers = [
4535
GitHubIntegrationProviderFixture(),
4636
GitLabIntegrationProviderFixture(),
47-
makeBitbucketProvider(),
37+
bitbucketProvider,
4838
];
4939

5040
render(<ScmProviderPills providers={providers} onInstall={jest.fn()} />);
@@ -59,10 +49,10 @@ describe('ScmProviderPills', () => {
5949
const providers = [
6050
GitHubIntegrationProviderFixture(),
6151
GitLabIntegrationProviderFixture(),
62-
makeBitbucketProvider(),
63-
makeBitbucketServerProvider(),
64-
makeGitHubEnterpriseProvider(),
65-
makeAzureDevOpsProvider(),
52+
bitbucketProvider,
53+
bitbucketServerProvider,
54+
gitHubEnterpriseProvider,
55+
azureDevOpsProvider,
6656
];
6757

6858
render(<ScmProviderPills providers={providers} onInstall={jest.fn()} />);
@@ -75,17 +65,15 @@ describe('ScmProviderPills', () => {
7565
// Secondary providers are hidden behind the "More" dropdown
7666
expect(screen.queryByText('Bitbucket Server')).not.toBeInTheDocument();
7767

78-
await userEvent.click(screen.getByRole('button', {name: /more/i}));
68+
await userEvent.click(screen.getByRole('button', {name: 'More'}));
7969

8070
expect(
81-
screen.getByRole('menuitemradio', {name: /bitbucket server/i})
82-
).toBeInTheDocument();
83-
expect(
84-
screen.getByRole('menuitemradio', {name: /github enterprise/i})
71+
screen.getByRole('menuitemradio', {name: 'Bitbucket Server'})
8572
).toBeInTheDocument();
8673
expect(
87-
screen.getByRole('menuitemradio', {name: /azure devops/i})
74+
screen.getByRole('menuitemradio', {name: 'GitHub Enterprise'})
8875
).toBeInTheDocument();
76+
expect(screen.getByRole('menuitemradio', {name: 'Azure DevOps'})).toBeInTheDocument();
8977
});
9078

9179
it('triggers install flow when clicking a dropdown item', async () => {
@@ -94,17 +82,12 @@ describe('ScmProviderPills', () => {
9482
close: jest.fn(),
9583
} as any);
9684

97-
const providers = [
98-
GitHubIntegrationProviderFixture(),
99-
makeGitHubEnterpriseProvider(),
100-
];
85+
const providers = [GitHubIntegrationProviderFixture(), gitHubEnterpriseProvider];
10186

10287
render(<ScmProviderPills providers={providers} onInstall={jest.fn()} />);
10388

104-
await userEvent.click(screen.getByRole('button', {name: /more/i}));
105-
await userEvent.click(
106-
screen.getByRole('menuitemradio', {name: /github enterprise/i})
107-
);
89+
await userEvent.click(screen.getByRole('button', {name: 'More'}));
90+
await userEvent.click(screen.getByRole('menuitemradio', {name: 'GitHub Enterprise'}));
10891

10992
expect(open).toHaveBeenCalledTimes(1);
11093
});

0 commit comments

Comments
 (0)