Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Route to plan if user session + to param == plan #2837

Merged
merged 7 commits into from
May 7, 2024

Conversation

ajay-sentry
Copy link
Contributor

Description

Other half of the pricing page to plan redirect ticket where we're routing to the plan page if the user clicks the "Try for Free" button on the pricing page.

Screenshots

Screen.Recording.2024-05-02.at.3.20.15.PM.mov

Link to Sample Entry

Legal Boilerplate

Look, I get it. The entity doing business as "Sentry" was incorporated in the State of Delaware in 2015 as Functional Software, Inc. In 2022 this entity acquired Codecov and as result Sentry is going to need some rights from me in order to utilize my contributions in this PR. So here's the deal: I retain all rights, title and interest in and to my contributions, and by keeping this boilerplate intact I confirm that Sentry can use, modify, copy, and redistribute my contributions, under Sentry's choice of terms.

Copy link

codecov-public-qa bot commented May 2, 2024

Test Failures Detected: Due to failing tests, we cannot provide coverage reports at this time.

❌ Failed Test Results:

Completed 2252 tests with 1 failed, 2251 passed and 0 skipped.

View the full list of failed tests
Test Description Failure message
Testsuite:
App
Test name:
App user has session, not logged in redirects to plan page if to param === plan::App user has session, not logged in redirects to plan page if to param === plan
Envs:
- default
TypeError: mockedUseLocationParams.mockReturnValue is not a function
at Object.<anonymous> (.../gazebo/src/App.spec.tsx:550:31)
at Promise.then.completed (.../jest-circus/build/utils.js:391:28)
at new Promise (<anonymous>)
at callAsyncCircusFn (.../jest-circus/build/utils.js:316:10)
at _callCircusTest (.../jest-circus/build/run.js:218:40)
at runNextTicks (node:internal/process/task_queues:60:5)
at listOnTimeout (node:internal/timers:540:9)
at processTimers (node:internal/timers:514:7)
at _runTest (.../jest-circus/build/run.js:155:3)
at _runTestsForDescribeBlock (.../jest-circus/build/run.js:66:9)
at _runTestsForDescribeBlock (.../jest-circus/build/run.js:60:9)
at _runTestsForDescribeBlock (.../jest-circus/build/run.js:60:9)
at run (.../jest-circus/build/run.js:25:3)
at runAndTransformResultsToJestFormat (.../build/legacy-code-todo-rewrite/jestAdapterInit.js:170:21)
at jestAdapter (.../build/legacy-code-todo-rewrite/jestAdapter.js:68:19)
at runTestInternal (.../jest-runner/build/runTest.js:389:16)
at runTest (.../jest-runner/build/runTest.js:475:34)
at Object.worker (.../jest-runner/build/testWorker.js:133:12)

Copy link

codecov bot commented May 2, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 98.48%. Comparing base (d88d434) to head (18e1fa6).

✅ All tests successful. No failed tests found.

Additional details and impacted files

Impacted file tree graph

@@          Coverage Diff          @@
##            main   #2837   +/-   ##
=====================================
  Coverage   98.48   98.48           
=====================================
  Files        875     875           
  Lines      12837   12839    +2     
  Branches    3422    3441   +19     
=====================================
+ Hits       12642   12644    +2     
  Misses       191     191           
  Partials       4       4           
Files Coverage Δ
src/App.tsx 100.00% <100.00%> (ø)
Components Coverage Δ
Assets 54.54% <ø> (ø)
Layouts 97.26% <ø> (ø)
Pages 99.27% <ø> (ø)
Services 99.50% <ø> (ø)
Shared 99.84% <ø> (ø)
UI 94.53% <ø> (ø)

Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update d88d434...18e1fa6. Read the comment docs.

@codecov-qa
Copy link

codecov-qa bot commented May 2, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 98.48%. Comparing base (d88d434) to head (18e1fa6).

✅ All tests successful. No failed tests found.

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##             main    #2837   +/-   ##
=======================================
  Coverage   98.48%   98.48%           
=======================================
  Files         875      875           
  Lines       12837    12839    +2     
  Branches     3422     3381   -41     
=======================================
+ Hits        12642    12644    +2     
  Misses        191      191           
  Partials        4        4           
Files Coverage Δ
src/App.tsx 100.00% <100.00%> (ø)
Components Coverage Δ
Assets 54.54% <ø> (ø)
Layouts 97.26% <ø> (ø)
Pages 99.27% <ø> (ø)
Services 99.50% <ø> (ø)
Shared 99.84% <ø> (ø)
UI 94.53% <ø> (ø)

Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update d88d434...18e1fa6. Read the comment docs.

@codecov-notifications
Copy link

codecov-notifications bot commented May 2, 2024

Test Failures Detected: Due to failing tests, we cannot provide coverage reports at this time.

❌ Failed Test Results:

Completed 2879 tests with 1 failed, 2878 passed and 0 skipped.

View the full list of failed tests
Test Description Failure message
Testsuite:
App

Test name:
App user has session, not logged in redirects to plan page if to param === plan::App user has session, not logged in redirects to plan page if to param === plan

Envs:
- default
TypeError: mockedUseLocationParams.mockReturnValue is not a function
at Object.<anonymous> (.../gazebo/src/App.spec.tsx:550:31)
at Promise.then.completed (.../jest-circus/build/utils.js:391:28)
at new Promise (<anonymous>)
at callAsyncCircusFn (.../jest-circus/build/utils.js:316:10)
at _callCircusTest (.../jest-circus/build/run.js:218:40)
at runNextTicks (node:internal/process/task_queues:60:5)
at listOnTimeout (node:internal/timers:540:9)
at processTimers (node:internal/timers:514:7)
at _runTest (.../jest-circus/build/run.js:155:3)
at _runTestsForDescribeBlock (.../jest-circus/build/run.js:66:9)
at _runTestsForDescribeBlock (.../jest-circus/build/run.js:60:9)
at _runTestsForDescribeBlock (.../jest-circus/build/run.js:60:9)
at run (.../jest-circus/build/run.js:25:3)
at runAndTransformResultsToJestFormat (.../build/legacy-code-todo-rewrite/jestAdapterInit.js:170:21)
at jestAdapter (.../build/legacy-code-todo-rewrite/jestAdapter.js:68:19)
at runTestInternal (.../jest-runner/build/runTest.js:389:16)
at runTest (.../jest-runner/build/runTest.js:475:34)
at Object.worker (.../jest-runner/build/testWorker.js:133:12)

src/App.tsx Outdated Show resolved Hide resolved
@codecov-staging
Copy link

codecov-staging bot commented May 2, 2024

Bundle Report

Changes will increase total bundle size by 29 bytes ⬆️

Bundle name Size Change
gazebo-staging-array-push 6.57MB 29 bytes ⬆️

Copy link

codecov bot commented May 2, 2024

Bundle Report

Changes will increase total bundle size by 29 bytes ⬆️

Bundle name Size Change
gazebo-production-array-push 6.57MB 29 bytes ⬆️

@codecov-releaser
Copy link
Contributor

codecov-releaser commented May 2, 2024

✅ Deploy preview for gazebo ready!

Previews expire after 1 month automatically.

Commit Created Cloud Enterprise
97c7052 Thu, 02 May 2024 22:32:25 GMT Expired Expired
cc10abf Thu, 02 May 2024 22:34:55 GMT Expired Expired
cc10abf Thu, 02 May 2024 22:44:03 GMT Expired Expired
cc10abf Thu, 02 May 2024 22:45:30 GMT Expired Expired
7a6d79a Tue, 07 May 2024 15:03:42 GMT Cloud Enterprise

@@ -23,17 +25,6 @@ jest.mock('./pages/TermsOfService', () => () => 'TermsOfService')
jest.mock('./pages/EnterpriseLandingPage', () => () => 'EnterpriseLandingPage')
jest.mock('./pages/SyncProviderPage', () => () => 'SyncProviderPage')

jest.mock('./shared/GlobalBanners', () => () => '')
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

none of these mocks seemed to affect the suite

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just a heads up there's a failing test

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@RulaKhaled Haha yeah, called it out on slack that the mocks are being funky if you may have a workaround in your back pocket :O


let redirectURL = '/login'

if (internalUser && internalUser.owners) {
redirectURL = `/${internalUser.owners[0]?.service}/${internalUser.owners[0]?.username}`
if (to === 'plan') {
redirectURL = '/plan' + redirectURL
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so this would be /plan/login? 🤔

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

on 47 we're updating the redirectURL if we enter the if clause! /login is just the "base" value if we never hit any of the if statements

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This pattern should allow us to have links like app.codecov.io?to="_____" which can now utilize the user's session and direct them to where we need to go in the app

For now, I think we only have a single case for this, but if we decide to build out this pattern more it might make sense to have a config somewhere mapping the to values to a path

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is cool

Copy link
Contributor

@spalmurray-codecov spalmurray-codecov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@ajay-sentry ajay-sentry added this pull request to the merge queue May 7, 2024
Merged via the queue into main with commit c63c54a May 7, 2024
43 of 44 checks passed
@ajay-sentry ajay-sentry deleted the Ajay/small-route-updates branch May 7, 2024 15:33
RulaKhaled pushed a commit that referenced this pull request May 13, 2024
* add plan route logic if to param set as plan

* help w/ test

* remove some unneeded mocks

* remove to

* fix spec mocks
github-merge-queue bot pushed a commit that referenced this pull request May 13, 2024
* feat: Add free plan seats alert

* feat: Create alerts for paid plan

* fix: Remove repositoryDeprecated from path contents hooks (#2845)

* update usePrefetchBranchDirEntry

* update useRepoBranchContents

* update index file

* update query off of repositoryDeprecated

* update tests

* small change to have commit signed

* update constants to ts

* small tweaks to the query keys

* Update useBranchCoverageMeasurements to use repository instead of repositoryDeprecated (#2843)

* feat: Paid/Free plan seats limit banner (#2830)

* feat: Add activation banner for trial eligible owners

* pull out interface + spec stuff

* Update to reflect paid plan activation banner

* Refactor CircleCI repo onboarding into one file (#2806)

* Refactor Other CI repo onboarding into one file (#2807)

* Update repo onboarding title position and page alignment (#2818)

* sec: 390 - Add validation for potential XSS vuln (#2797)

* add tests, and validation for provider

* add back supportServiceless param

* ref: 1548 Part 1: Convert all Header files to TS (#2821)

* ref all header files to TS

* remove prop types and rebase

* fix: Remove repository from GUT settings page header (#2823)

Small tweak removing `repository` from the GUT settings page.

* Install radix-ui react radio group (#2825)

* Update repo onboarding steps with new Card component (#2819)

GH codecov/engineering-team#1665

* feat: Add hasSeatsLeft to plan query

* Update to reflect SeatsLimitReachedBanner

* feat: paid plan activation banner

* update with from FreePlanSeatsLimitBanner

* value duplicate

* feat: paid plan seats limit banner

* just one more small tweak

* update name to FreePlanSeatsLimitBanner

* remove queryclient call

* update tests

* fix padding

* Update to have a const for plan value

---------

Co-authored-by: Spencer Murray <159931558+spalmurray-codecov@users.noreply.github.com>
Co-authored-by: ajay-sentry <159853603+ajay-sentry@users.noreply.github.com>
Co-authored-by: nicholas-codecov <nicholas.deschenes@sentry.io>

* feat: Paid plans activation required banner (#2832)

* feat: Add activation banner for trial eligible owners

* pull out interface + spec stuff

* Update to reflect paid plan activation banner

* Refactor CircleCI repo onboarding into one file (#2806)

* Refactor Other CI repo onboarding into one file (#2807)

* Update repo onboarding title position and page alignment (#2818)

* sec: 390 - Add validation for potential XSS vuln (#2797)

* add tests, and validation for provider

* add back supportServiceless param

* ref: 1548 Part 1: Convert all Header files to TS (#2821)

* ref all header files to TS

* remove prop types and rebase

* fix: Remove repository from GUT settings page header (#2823)

Small tweak removing `repository` from the GUT settings page.

* Install radix-ui react radio group (#2825)

* Update repo onboarding steps with new Card component (#2819)

GH codecov/engineering-team#1665

* feat: Add hasSeatsLeft to plan query

* Update to reflect SeatsLimitReachedBanner

* feat: paid plan activation banner

* update with from FreePlanSeatsLimitBanner

* value duplicate

* feat: Activation required banner

* clean up previous commit

* match design

* fix style

* Resolve conflicts

---------

Co-authored-by: Spencer Murray <159931558+spalmurray-codecov@users.noreply.github.com>
Co-authored-by: ajay-sentry <159853603+ajay-sentry@users.noreply.github.com>
Co-authored-by: nicholas-codecov <nicholas.deschenes@sentry.io>

* Unlink PR author on pulls table (#2846)

* ref: Use Repository instead of RepositoryDeprecated in useCommitYaml (#2844)

* Convert UseCommitYaml to Repository from RepositoryDeprecated

* Update query key

* ref: Convert useCommitErrors to TS and remove repositoryDeprecated (#2847)

* init conversion and remove deprecated, testing

* fix tests for useCommitErrors

* add additional spec

* add dev stuff

* update test coverage

* feat: Route to plan if user session + to param == plan (#2837)

* add plan route logic if to param set as plan

* help w/ test

* remove some unneeded mocks

* remove to

* fix spec mocks

* fix: Show banner for private repos only (#2853)

* fix: Footer Codecov icon displaying incorrect color  (#2858)

* fill color update

* update hex val

* Update useRepoSettings to move to new repository type (#2851)

* Update usereposettings

* Update tests

* update test

* Update more tests

* Update more tests

* more test updates

* Update type

* Update

* Update query

* Refactor

* dep: Update to Sentry RC-1 (#2849)

* pin @sentry/react to the latest release candidated

* update lockfile

* fix: Flaky tests around file explorer tables (#2856)

* Fix coverage tab file list table

* Fix coverage tab code tree table tests

* Fix pull indirect changed files table

* Fix commit file explorer table

* Fix missed instance of getByText

* ref: Convert SessionsTable to tanstack table (#2842)

* Convert Access.jsx -> tsx

* Fix type issue with TokensTable

* Remove unnecessary import

* Convert SessionsTable to ts

* Add tests

* Fix tests

* Fix all testLocation: any

* Use msw for mutation mock

* Improve flatmap callback for readability

* Better type hint for flat map return

* Fix flake

* Fix imports

* Fix indirect coverage loss

* style: Use Card component in bundle onboarding (#2861)

* Fix copy pasta border/padding

* Page width change

* Vite onboarding overhaul

* Webpack onboarding overhaul

* Rollup onboarding overhaul

* Fix tests

* chore: Update codecov.yml so that PR comment isn't sent until 9 uploads (#2865)

* Update to 8 uploads before comment to avoid many comments

* Oopsie it's actually the ceiling

* ref: Convert useComparisonForCommitAndParent to TS and remove repositoryDeprecated (#2857)

* fix tests, confirm it works

* export type and use instead

* feat: Add radio button navigation to repo onboarding (#2839)

* Use RadioTileGroup for navigation on the repo onboarding page

* Pull getInitalProvider out of component

* Fix tests

* Remove unnecessary div

* fix: A potential fix for the flaky test (#2854)

* ref: Clean up pull file explorer tests (#2852)

* Clean up pull file explorer tests

* Fix tests

* Revert "Fix tests"

This reverts commit f5aeccd.

* components over time display name instead of id (#2868)

* style: Fix radio tile group indicator shifting on certain screen sizes (#2869)

* Fix responsiveness issue on RadioTileGroup

* Add longer description to story

* Left align the label text

* ref: Remove repositoryDeprecated from usePrefetchSingleFileComp (#2870)

* update usePrefetchSingleFileComp to TS

* update NameColumn tests

* move fragment schema next to gql fragment string

* Capitlize view in free alert

* oops conflict stuff

---------

Co-authored-by: nicholas-codecov <nicholas.deschenes@sentry.io>
Co-authored-by: Spencer Murray <159931558+spalmurray-codecov@users.noreply.github.com>
Co-authored-by: ajay-sentry <159853603+ajay-sentry@users.noreply.github.com>
Co-authored-by: Rohit Vinnakota <148245014+rohitvinnakota-codecov@users.noreply.github.com>
Co-authored-by: JerrySentry <142266253+JerrySentry@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants