Skip to content

Commit 4a1350e

Browse files
Merge branch 'main' into cy/non_pat_appless
2 parents 4dce9fc + 02d5b6b commit 4a1350e

File tree

97 files changed

+1269
-841
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

97 files changed

+1269
-841
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@
9292
"@babel/eslint-parser": "^7.25.9",
9393
"@babel/plugin-proposal-private-property-in-object": "^7.21.11",
9494
"@chromatic-com/storybook": "^1",
95-
"@codecov/vite-plugin": "^1.7.0",
95+
"@codecov/vite-plugin": "^1.8.0",
9696
"@sentry/vite-plugin": "^2.22.7",
9797
"@storybook/addon-a11y": "^8.3.7",
9898
"@storybook/addon-actions": "^8.3.7",

src/App.test.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ describe('App', () => {
217217
graphql.query('GetPlanData', () => {
218218
return HttpResponse.json({ data: {} })
219219
}),
220-
graphql.query('OwnerTier', () => {
220+
graphql.query('IsTeamPlan', () => {
221221
return HttpResponse.json({ data: {} })
222222
}),
223223
graphql.query('Seats', () => {

src/assets/billing/bank.svg

+10
Loading

src/pages/AnalyticsPage/Chart/Chart.test.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,8 @@ describe('Analytics coverage chart', () => {
115115

116116
return HttpResponse.json({ data: mockDataPoints })
117117
}),
118-
graphql.query('OwnerTier', () =>
119-
HttpResponse.json({ data: { owner: { plan: { tierName: 'pro' } } } })
118+
graphql.query('IsTeamPlan', () =>
119+
HttpResponse.json({ data: { owner: { plan: { isTeamPlan: false } } } })
120120
)
121121
)
122122
}

src/pages/AnalyticsPage/Chart/useCoverage.test.tsx

+6-8
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ import { graphql, HttpResponse } from 'msw'
44
import { setupServer } from 'msw/node'
55
import { MemoryRouter, Route } from 'react-router-dom'
66

7-
import { TierNames, TTierNames } from 'services/tier'
8-
97
import { useCoverage } from './useCoverage'
108

119
vi.mock('services/charts')
@@ -65,14 +63,14 @@ afterAll(() => {
6563

6664
interface SetupArgs {
6765
nullFirstVal?: boolean
68-
tierValue?: TTierNames
66+
isTeamPlan?: boolean
6967
}
7068

7169
describe('useCoverage', () => {
7270
function setup(
73-
{ nullFirstVal, tierValue }: SetupArgs = {
71+
{ nullFirstVal, isTeamPlan }: SetupArgs = {
7472
nullFirstVal: false,
75-
tierValue: TierNames.PRO,
73+
isTeamPlan: false,
7674
}
7775
) {
7876
server.use(
@@ -85,9 +83,9 @@ describe('useCoverage', () => {
8583
}
8684
return HttpResponse.json({ data: mockRepoMeasurements })
8785
}),
88-
graphql.query('OwnerTier', () => {
86+
graphql.query('IsTeamPlan', () => {
8987
return HttpResponse.json({
90-
data: { owner: { plan: { tierName: tierValue } } },
88+
data: { owner: { plan: { isTeamPlan } } },
9189
})
9290
})
9391
)
@@ -140,7 +138,7 @@ describe('useCoverage', () => {
140138

141139
describe('owner is on a team plan', () => {
142140
it('gets public repos from useReposCoverageMeasurements', async () => {
143-
setup({ tierValue: TierNames.TEAM })
141+
setup({ isTeamPlan: true })
144142
const { result } = renderHook(
145143
() =>
146144
useCoverage({

src/pages/AnalyticsPage/Chart/useCoverage.ts

+3-5
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { useMemo } from 'react'
22
import { useParams } from 'react-router-dom'
33

44
import { useReposCoverageMeasurements } from 'services/charts/useReposCoverageMeasurements'
5-
import { TierNames, useTier } from 'services/tier'
5+
import { useIsTeamPlan } from 'services/useIsTeamPlan'
66
import { analyticsQuery } from 'shared/utils/timeseriesCharts'
77

88
interface URLParams {
@@ -28,9 +28,7 @@ export const useCoverage = ({
2828
}: UseCoverageArgs) => {
2929
const { provider, owner } = useParams<URLParams>()
3030

31-
const { data: tierName } = useTier({ provider, owner })
32-
const shouldDisplayPublicReposOnly =
33-
tierName === TierNames.TEAM ? true : undefined
31+
const { data: isTeamPlan } = useIsTeamPlan({ provider, owner })
3432

3533
const queryVars = analyticsQuery({ startDate, endDate, repositories })
3634

@@ -41,7 +39,7 @@ export const useCoverage = ({
4139
repos: queryVars?.repositories,
4240
before: queryVars?.endDate,
4341
after: queryVars?.startDate,
44-
isPublic: shouldDisplayPublicReposOnly,
42+
isPublic: isTeamPlan === true ? true : undefined,
4543
opts: {
4644
staleTime: 30000,
4745
keepPreviousData: false,

src/pages/AnalyticsPage/ChartSelectors/ChartSelectors.jsx

+5-6
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { useMemo, useRef, useState } from 'react'
44
import { useParams } from 'react-router-dom'
55

66
import { ReposQueryOpts } from 'services/repos/ReposQueryOpts'
7-
import { TierNames, useTier } from 'services/tier'
7+
import { useIsTeamPlan } from 'services/useIsTeamPlan'
88
import A from 'ui/A'
99
import DateRangePicker from 'ui/DateRangePicker'
1010
import MultiSelect from 'ui/MultiSelect'
@@ -53,8 +53,7 @@ function RepoSelector({
5353
updateParams({ repositories: item })
5454
}
5555

56-
const { data: tierName } = useTier({ provider, owner })
57-
const shouldDisplayPublicReposOnly = tierName === TierNames.TEAM ? true : null
56+
const { data: isTeamPlan } = useIsTeamPlan({ provider, owner })
5857

5958
const {
6059
data: reposData,
@@ -69,7 +68,7 @@ function RepoSelector({
6968
activated: active,
7069
term: search,
7170
first: Infinity,
72-
isPublic: shouldDisplayPublicReposOnly,
71+
isPublic: isTeamPlan === true ? true : null,
7372
})
7473
)
7574

@@ -114,7 +113,7 @@ function ChartSelectors({ params, updateParams, active, sortItem }) {
114113
const { repositories, startDate, endDate } = params
115114
const [selectedRepos, setSelectedRepos] = useState(repositories)
116115

117-
const { data: tierData } = useTier({ provider, owner })
116+
const { data: isTeamPlan } = useIsTeamPlan({ provider, owner })
118117

119118
if (selectedRepos.length > 0 && repositories.length === 0) {
120119
setSelectedRepos([])
@@ -151,7 +150,7 @@ function ChartSelectors({ params, updateParams, active, sortItem }) {
151150
>
152151
Clear filters
153152
</button>
154-
{tierData === TierNames.TEAM ? (
153+
{isTeamPlan ? (
155154
<p className="self-end">
156155
Public repos only. <A to={{ pageName: 'upgradeOrgPlan' }}>Upgrade</A>{' '}
157156
to Pro to include private repos.

src/pages/AnalyticsPage/ChartSelectors/ChartSelectors.test.jsx

+4-6
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@ import { setupServer } from 'msw/node'
1010
import { Suspense } from 'react'
1111
import { MemoryRouter, Route } from 'react-router-dom'
1212

13-
import { TierNames } from 'services/tier'
14-
1513
import ChartSelectors from './ChartSelectors'
1614

1715
class ResizeObserverMock {
@@ -127,16 +125,16 @@ describe('ChartSelectors', () => {
127125
vi.clearAllMocks()
128126
})
129127

130-
function setup({ hasNextPage = false, tierValue = TierNames.PRO }) {
128+
function setup({ hasNextPage = false, isTeamPlan = false }) {
131129
// https://github.com/testing-library/user-event/issues/1034
132130
const user = userEvent.setup({ advanceTimers: vi.advanceTimersByTime })
133131
const fetchNextPage = vi.fn()
134132
const searchTerm = vi.fn()
135133

136134
server.use(
137-
graphql.query('OwnerTier', () => {
135+
graphql.query('IsTeamPlan', () => {
138136
return HttpResponse.json({
139-
data: { owner: { plan: { tierName: tierValue } } },
137+
data: { owner: { plan: { isTeamPlan } } },
140138
})
141139
}),
142140
graphql.query('ReposForOwner', ({ variables }) => {
@@ -526,7 +524,7 @@ describe('ChartSelectors', () => {
526524

527525
describe('owner is on a team plan', () => {
528526
it('renders upgrade cta', async () => {
529-
setup({ hasNextPage: false, tierValue: TierNames.TEAM })
527+
setup({ hasNextPage: false, isTeamPlan: true })
530528
render(
531529
<ChartSelectors
532530
active={true}

src/pages/CommitDetailPage/CommitCoverage/CommitCoverage.jsx

+5-5
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { SentryRoute } from 'sentry'
88
import { useCommit } from 'services/commit'
99
import { useCommitErrors } from 'services/commitErrors'
1010
import { useRepoOverview, useRepoRateLimitStatus } from 'services/repo'
11-
import { TierNames, useTier } from 'services/tier'
11+
import { useIsTeamPlan } from 'services/useIsTeamPlan'
1212
import { useOwner } from 'services/user'
1313
import ComparisonErrorBanner from 'shared/ComparisonErrorBanner'
1414
import GitHubRateLimitExceededBanner from 'shared/GlobalBanners/GitHubRateLimitExceeded/GitHubRateLimitExceededBanner'
@@ -44,7 +44,7 @@ const Loader = () => (
4444

4545
function CommitRoutes() {
4646
const { provider, owner, repo, commit: commitSha } = useParams()
47-
const { data: tierName } = useTier({ owner, provider })
47+
const { data: isTeamPlan } = useIsTeamPlan({ owner, provider })
4848
const { data: overview } = useRepoOverview({ provider, owner, repo })
4949
const { data: commitPageData } = useSuspenseQueryV5(
5050
CommitPageDataQueryOpts({
@@ -74,7 +74,7 @@ function CommitRoutes() {
7474
// is still useful info to the user
7575
const isMissingBaseCommit = compareTypeName === 'MissingBaseCommit'
7676

77-
const showIndirectChanges = !(overview.private && tierName === TierNames.TEAM)
77+
const showIndirectChanges = !(overview.private && isTeamPlan)
7878

7979
return (
8080
<Suspense fallback={<Loader />}>
@@ -174,7 +174,7 @@ function CommitCoverageRoutes() {
174174

175175
function CommitCoverage() {
176176
const { provider, owner, repo, commit: commitSha } = useParams()
177-
const { data: tierName } = useTier({ owner, provider })
177+
const { data: isTeamPlan } = useIsTeamPlan({ owner, provider })
178178
const { data: overview } = useRepoOverview({ provider, owner, repo })
179179
const { data: rateLimit } = useRepoRateLimitStatus({ provider, owner, repo })
180180
const { data: commitPageData } = useSuspenseQueryV5(
@@ -186,7 +186,7 @@ function CommitCoverage() {
186186
})
187187
)
188188

189-
const showCommitSummary = !(overview.private && tierName === TierNames.TEAM)
189+
const showCommitSummary = !(overview.private && isTeamPlan)
190190
const showFirstPullBanner =
191191
commitPageData?.commit?.compareWithParent?.__typename === 'FirstPullRequest'
192192
return (

src/pages/CommitDetailPage/CommitCoverage/CommitCoverage.test.jsx

+8-9
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import { setupServer } from 'msw/node'
1313
import { Suspense } from 'react'
1414
import { MemoryRouter, Route } from 'react-router-dom'
1515

16-
import { TierNames } from 'services/tier/useTier'
1716
import { UploadStateEnum } from 'shared/utils/commit'
1817

1918
import CommitCoverage from './CommitCoverage'
@@ -199,10 +198,10 @@ const mockRepoSettingsTeamData = (isPrivate = false) => ({
199198
},
200199
})
201200

202-
const mockOwnerTier = (tier = TierNames.PRO) => ({
201+
const mockIsTeamPlan = (isTeamPlan = false) => ({
203202
owner: {
204203
plan: {
205-
tierName: tier,
204+
isTeamPlan,
206205
},
207206
},
208207
})
@@ -396,7 +395,7 @@ describe('CommitCoverage', () => {
396395
function setup(
397396
{
398397
isPrivate = false,
399-
tierName = TierNames.PRO,
398+
isTeamPlan = false,
400399
hasCommitErrors = false,
401400
hasErroredUploads = false,
402401
hasCommitPageMissingCommitDataError = false,
@@ -407,7 +406,7 @@ describe('CommitCoverage', () => {
407406
isGithubRateLimited = false,
408407
} = {
409408
isPrivate: false,
410-
tierName: TierNames.PRO,
409+
isTeamPlan: false,
411410
hasCommitErrors: false,
412411
hasErroredUploads: false,
413412
hasCommitPageMissingCommitDataError: false,
@@ -443,8 +442,8 @@ describe('CommitCoverage', () => {
443442
}),
444443
})
445444
}),
446-
graphql.query('OwnerTier', () => {
447-
return HttpResponse.json({ data: mockOwnerTier(tierName) })
445+
graphql.query('IsTeamPlan', () => {
446+
return HttpResponse.json({ data: mockIsTeamPlan(isTeamPlan) })
448447
}),
449448
graphql.query('BackfillFlagMemberships', () => {
450449
return HttpResponse.json({ data: mockRepoBackfilledData })
@@ -582,7 +581,7 @@ describe('CommitCoverage', () => {
582581
describe('user is on a team plan', () => {
583582
it('does not render commit coverage summary', async () => {
584583
const { queryClient, queryClientV5 } = setup({
585-
tierName: TierNames.TEAM,
584+
isTeamPlan: true,
586585
isPrivate: true,
587586
})
588587
render(<CommitCoverage />, {
@@ -598,7 +597,7 @@ describe('CommitCoverage', () => {
598597

599598
it('does not render indirect changes tab', async () => {
600599
const { queryClient, queryClientV5 } = setup({
601-
tierName: TierNames.TEAM,
600+
isTeamPlan: true,
602601
isPrivate: true,
603602
})
604603
render(<CommitCoverage />, {

src/pages/CommitDetailPage/CommitCoverage/CommitCoverageTabs/CommitCoverageTabs.jsx

+3-5
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
commitTreeviewString,
99
} from 'pages/RepoPage/utils'
1010
import { useRepoSettingsTeam } from 'services/repo'
11-
import { TierNames, useTier } from 'services/tier'
11+
import { useIsTeamPlan } from 'services/useIsTeamPlan'
1212
import TabNavigation from 'ui/TabNavigation'
1313

1414
function CommitCoverageTabs({
@@ -18,12 +18,10 @@ function CommitCoverageTabs({
1818
}) {
1919
const { provider, owner, repo } = useParams()
2020
const location = useLocation()
21-
const { data: tierName } = useTier({ owner, provider })
21+
const { data: isTeamPlan } = useIsTeamPlan({ owner, provider })
2222
const { data: repoData } = useRepoSettingsTeam()
2323

24-
const showIndirectChanges = !(
25-
repoData?.repository?.private && tierName === TierNames.TEAM
26-
)
24+
const showIndirectChanges = !(repoData?.repository?.private && isTeamPlan)
2725

2826
const params = qs.parse(location.search, {
2927
ignoreQueryPrefix: true,

src/pages/CommitDetailPage/CommitCoverage/CommitCoverageTabs/CommitCoverageTabs.test.jsx

+5-12
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ import qs from 'qs'
66
import { Suspense } from 'react'
77
import { MemoryRouter, Route } from 'react-router-dom'
88

9-
import { TierNames } from 'services/tier'
10-
119
import CommitCoverageTabs from './CommitCoverageTabs'
1210

1311
const mockRepoSettings = (isPrivate) => ({
@@ -110,22 +108,17 @@ afterAll(() => {
110108
})
111109

112110
describe('CommitCoverageTabs', () => {
113-
function setup(
114-
{ tierValue = TierNames.PRO, isPrivate = false } = {
115-
tierValue: TierNames.PRO,
116-
isPrivate: false,
117-
}
118-
) {
111+
function setup({ isTeamPlan = false, isPrivate = false } = {}) {
119112
server.use(
120113
graphql.query('FlagsSelect', () => {
121114
return HttpResponse.json({ data: mockFlagsResponse })
122115
}),
123116
graphql.query('BackfillFlagMemberships', () => {
124117
return HttpResponse.json({ data: mockBackfillResponse })
125118
}),
126-
graphql.query('OwnerTier', () => {
119+
graphql.query('IsTeamPlan', () => {
127120
return HttpResponse.json({
128-
data: { owner: { plan: { tierName: tierValue } } },
121+
data: { owner: { plan: { isTeamPlan } } },
129122
})
130123
}),
131124
graphql.query('GetRepoSettingsTeam', () => {
@@ -137,7 +130,7 @@ describe('CommitCoverageTabs', () => {
137130
describe('user is on a team plan', () => {
138131
describe('repo is public', () => {
139132
it('does not render the indirect changes tab', async () => {
140-
setup({ tierValue: TierNames.TEAM, isPrivate: false })
133+
setup({ isTeamPlan: true, isPrivate: false })
141134
render(<CommitCoverageTabs commitSha="sha256" />, {
142135
wrapper: wrapper(),
143136
})
@@ -154,7 +147,7 @@ describe('CommitCoverageTabs', () => {
154147
})
155148
describe('repo is private', () => {
156149
it('does not render the indirect changes tab', async () => {
157-
setup({ tierValue: TierNames.TEAM, isPrivate: true })
150+
setup({ isTeamPlan: true, isPrivate: true })
158151
render(<CommitCoverageTabs commitSha="sha256" />, {
159152
wrapper: wrapper(),
160153
})

0 commit comments

Comments
 (0)