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

client: remove deprecated authenticatedUser.email #46183

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion client/shared/src/auth.ts
Expand Up @@ -10,7 +10,6 @@ export const currentAuthStateQuery = gql`
databaseID
username
avatarURL
email
displayName
siteAdmin
tags
Expand All @@ -36,6 +35,7 @@ export const currentAuthStateQuery = gql`
emails {
email
verified
isPrimary
}
latestSettings {
id
Expand Down
7 changes: 4 additions & 3 deletions client/shared/src/util/url.ts
Expand Up @@ -594,16 +594,17 @@ export function buildGetStartedURL(cloudSignup?: boolean, authenticatedUser?: Au
* @returns signup UR string with relevant params attached
*/
export const buildCloudTrialURL = (
authenticatedUser: Pick<AuthenticatedUser, 'displayName' | 'email'> | null | undefined,
authenticatedUser: Pick<AuthenticatedUser, 'displayName' | 'emails'> | null | undefined,
product?: string
): string => {
const url = new URL('https://signup.sourcegraph.com/')

if (product) {
url.searchParams.append('p', product)
}
if (authenticatedUser?.email) {
url.searchParams.append('email', authenticatedUser.email)
const primaryEmail = authenticatedUser?.emails.find(email => email.isPrimary)
if (primaryEmail) {
url.searchParams.append('email', primaryEmail.email)
}
if (authenticatedUser?.displayName) {
url.searchParams.append('name', authenticatedUser.displayName)
Expand Down
9 changes: 8 additions & 1 deletion client/web/src/Layout.tsx
Expand Up @@ -201,7 +201,14 @@ export const Layout: React.FunctionComponent<React.PropsWithChildren<LayoutProps
onSubmit={handleSubmitFeedback}
modal={true}
openByDefault={true}
authenticatedUser={props.authenticatedUser}
authenticatedUser={
props.authenticatedUser
? {
username: props.authenticatedUser.username || '',
email: props.authenticatedUser.emails.find(email => email.isPrimary)?.email || '',
}
: null
}
onClose={() => setFeedbackModalOpen(false)}
/>
)}
Expand Down
2 changes: 1 addition & 1 deletion client/web/src/auth/SignInPage.test.tsx
Expand Up @@ -136,7 +136,7 @@ describe('SignInPage', () => {
const mockUser = {
id: 'userID',
username: 'username',
email: 'user@me.com',
emails: [{ email: 'user@me.com', isPrimary: true, verified: true }],
siteAdmin: true,
} as AuthenticatedUser

Expand Down
2 changes: 1 addition & 1 deletion client/web/src/auth/SignUpPage.test.tsx
Expand Up @@ -95,7 +95,7 @@ describe('SignUpPage', () => {
const mockUser = {
id: 'userID',
username: 'username',
email: 'user@me.com',
emails: [{ email: 'user@me.com', isPrimary: true, verified: true }],
siteAdmin: true,
} as AuthenticatedUser

Expand Down
Expand Up @@ -54,7 +54,6 @@ const PLATFORM_CONTEXT: CommunitySearchContextPageProps['platformContext'] = {
const authUser: AuthenticatedUser = {
__typename: 'User',
id: '0',
email: 'alice@sourcegraph.com',
username: 'alice',
avatarURL: null,
session: { canSignOut: true },
Expand All @@ -73,7 +72,7 @@ const authUser: AuthenticatedUser = {
databaseID: 0,
tosAccepted: true,
searchable: true,
emails: [],
emails: [{ email: 'alice@sourcegraph.com', isPrimary: true, verified: true }],
latestSettings: null,
}

Expand Down
2 changes: 1 addition & 1 deletion client/web/src/enterprise/batches/list/GettingStarted.tsx
Expand Up @@ -13,7 +13,7 @@ import { eventLogger } from '../../../tracking/eventLogger'

export interface GettingStartedProps {
isSourcegraphDotCom: boolean
authenticatedUser?: Pick<AuthenticatedUser, 'displayName' | 'email'> | null
authenticatedUser?: Pick<AuthenticatedUser, 'displayName' | 'emails'> | null
className?: string
}

Expand Down
Expand Up @@ -241,7 +241,7 @@ export const Create: Story = args => {
url: '/users/alice',
displayName: 'Alice',
username: 'alice',
email: 'alice@email.test',
emails: [{ email: 'alice@email.test', isPrimary: true, verified: true }],
}}
/>
</MockedTestProvider>
Expand All @@ -267,7 +267,7 @@ export const Update: Story = args => {
url: '/users/alice',
displayName: 'Alice',
username: 'alice',
email: 'alice@email.test',
emails: [{ email: 'alice@email.test', isPrimary: true, verified: true }],
}}
/>
</MockedTestProvider>
Expand All @@ -293,7 +293,7 @@ export const MissingCredentials: Story = args => {
url: '/users/alice',
displayName: 'Alice',
username: 'alice',
email: 'alice@email.test',
emails: [{ email: 'alice@email.test', isPrimary: true, verified: true }],
}}
/>
</MockedTestProvider>
Expand Down Expand Up @@ -321,7 +321,7 @@ export const SpecFile: Story = args => {
url: '/users/alice',
displayName: 'Alice',
username: 'alice',
email: 'alice@email.test',
emails: [{ email: 'alice@email.test', isPrimary: true, verified: true }],
}}
/>
</MockedTestProvider>
Expand Down Expand Up @@ -349,7 +349,7 @@ export const NoChangesets: Story = args => {
url: '/users/alice',
displayName: 'Alice',
username: 'alice',
email: 'alice@email.test',
emails: [{ email: 'alice@email.test', isPrimary: true, verified: true }],
}}
/>
</MockedTestProvider>
Expand Down Expand Up @@ -377,7 +377,7 @@ export const CreateNewStory: Story = args => {
url: '/users/alice',
displayName: 'Alice',
username: 'alice',
email: 'alice@email.test',
emails: [{ email: 'alice@email.test', isPrimary: true, verified: true }],
}}
/>
</MockedTestProvider>
Expand Down Expand Up @@ -405,7 +405,7 @@ export const ExceedsLicenseStory: Story = args => {
url: '/users/alice',
displayName: 'Alice',
username: 'alice',
email: 'alice@email.test',
emails: [{ email: 'alice@email.test', isPrimary: true, verified: true }],
}}
/>
</MockedTestProvider>
Expand Down
Expand Up @@ -25,7 +25,7 @@ import { BatchSpecInfoByline } from './BatchSpecInfoByline'
import { CreateUpdateBatchChangeAlert } from './CreateUpdateBatchChangeAlert'
import { PreviewList } from './list/PreviewList'

export type PreviewPageAuthenticatedUser = Pick<AuthenticatedUser, 'url' | 'displayName' | 'username' | 'email'>
export type PreviewPageAuthenticatedUser = Pick<AuthenticatedUser, 'url' | 'displayName' | 'username' | 'emails'>

export interface BatchChangePreviewPageProps extends BatchChangePreviewProps {
/** Used for testing. */
Expand Down
Expand Up @@ -40,7 +40,7 @@ export const Overview: Story = () => {
url: '/users/alice',
displayName: 'Alice',
username: 'alice',
email: 'alice@email.test',
emails: [{ email: 'alice@email.test', isPrimary: true, verified: true }],
}}
queryChangesetSpecFileDiffs={queryEmptyFileDiffs}
/>
Expand Down
Expand Up @@ -59,7 +59,7 @@ export const DefaultStory: Story = args => {
url: '/users/alice',
displayName: 'Alice',
username: 'alice',
email: 'alice@email.test',
emails: [{ email: 'alice@email.test', isPrimary: true, verified: true }],
}}
queryChangesetApplyPreview={queryChangesetApplyPreview}
queryChangesetSpecFileDiffs={queryEmptyFileDiffs}
Expand Down
Expand Up @@ -35,7 +35,7 @@ const Template: Story<{ node: VisibleChangesetApplyPreviewFields }> = ({ node })
url: '/users/alice',
displayName: 'Alice',
username: 'alice',
email: 'alice@email.test',
emails: [{ email: 'alice@email.test', isPrimary: true, verified: true }],
}}
queryChangesetSpecFileDiffs={queryEmptyFileDiffs}
/>
Expand Down
Expand Up @@ -384,7 +384,8 @@ const ExpandedSection: React.FunctionComponent<
node.targets.changeset.author
? node.targets.changeset.author
: {
email: authenticatedUser.email,
email:
authenticatedUser.emails.find(email => email.isPrimary)?.email || '',
displayName: authenticatedUser.displayName || authenticatedUser.username,
user: authenticatedUser,
}
Expand Down
Expand Up @@ -39,7 +39,11 @@ const generateMockFetchMonitors =
}

const additionalProps = {
authenticatedUser: { id: 'foobar', username: 'alice', email: 'alice@alice.com' } as AuthenticatedUser,
authenticatedUser: {
id: 'foobar',
username: 'alice',
emails: [{ email: 'alice@email.test', isPrimary: true, verified: true }],
} as AuthenticatedUser,
toggleCodeMonitorEnabled: sinon.fake(),
settingsCascade: EMPTY_SETTINGS_CASCADE,
}
Expand Down
Expand Up @@ -13,7 +13,11 @@ import { CodeMonitoringPage } from './CodeMonitoringPage'
import { mockCodeMonitorNodes } from './testing/util'

const additionalProps = {
authenticatedUser: { id: 'foobar', username: 'alice', email: 'alice@alice.com' } as AuthenticatedUser,
authenticatedUser: {
id: 'foobar',
username: 'alice',
emails: [{ email: 'alice@email.test', isPrimary: true, verified: true }],
} as AuthenticatedUser,
fetchUserCodeMonitors: ({ id, first, after }: ListUserCodeMonitorsVariables) =>
of({
nodes: mockCodeMonitorNodes,
Expand Down
Expand Up @@ -22,7 +22,13 @@ export const CreateCodeMonitorPageStory: Story = () => (
{props => (
<CreateCodeMonitorPage
{...props}
authenticatedUser={{ id: 'foobar', username: 'alice', email: 'alice@alice.com' } as AuthenticatedUser}
authenticatedUser={
{
id: 'foobar',
username: 'alice',
emails: [{ email: 'alice@alice.com', isPrimary: true, verified: true }],
} as AuthenticatedUser
}
createCodeMonitor={sinon.fake()}
isSourcegraphDotCom={false}
/>
Expand Down
Expand Up @@ -18,7 +18,7 @@ describe('CreateCodeMonitorPage', () => {
const mockUser = {
id: 'userID',
username: 'username',
email: 'user@me.com',
emails: [{ email: 'user@me.com', isPrimary: true, verified: true }],
siteAdmin: true,
} as AuthenticatedUser

Expand Down
Expand Up @@ -20,7 +20,12 @@ export const ManageCodeMonitorPageStory: Story = () => (
{props => (
<ManageCodeMonitorPage
{...props}
authenticatedUser={{ ...mockUser, id: 'foobar', username: 'alice', email: 'alice@alice.com' }}
authenticatedUser={{
...mockUser,
id: 'foobar',
username: 'alice',
emails: [{ email: 'alice@alice.com', isPrimary: true, verified: true }],
}}
updateCodeMonitor={fake()}
fetchCodeMonitor={fake(() => of(mockCodeMonitor))}
deleteCodeMonitor={fake(() => NEVER)}
Expand Down
Expand Up @@ -94,6 +94,8 @@ export const EmailAction: React.FunctionComponent<React.PropsWithChildren<Action
const testState = loading ? 'loading' : called && !error ? 'called' : error || undefined

const emailConfigured = window.context.emailEnabled
const userPrimaryEmail = authenticatedUser.emails.find(email => email.isPrimary)

const emailNotConfiguredMessage = !emailConfigured ? (
!action ? (
<>
Expand All @@ -116,7 +118,7 @@ export const EmailAction: React.FunctionComponent<React.PropsWithChildren<Action
idName="email"
disabled={disabledBasedOnEmailConfig}
completed={!!action}
completedSubtitle={authenticatedUser.email}
completedSubtitle={userPrimaryEmail?.email || ''}
actionEnabled={enabled}
toggleActionEnabled={toggleEmailNotificationEnabled}
includeResults={includeResults}
Expand All @@ -138,7 +140,7 @@ export const EmailAction: React.FunctionComponent<React.PropsWithChildren<Action
id="code-monitoring-form-actions-recipients"
className="mb-2"
label="Recipients"
value={`${authenticatedUser.email || ''} (you)`}
value={`${userPrimaryEmail?.email || ''} (you)`}
disabled={true}
autoFocus={true}
required={true}
Expand Down
5 changes: 2 additions & 3 deletions client/web/src/enterprise/code-monitoring/testing/util.ts
Expand Up @@ -10,7 +10,6 @@ export const mockUser: AuthenticatedUser = {
__typename: 'User',
id: 'userID',
username: 'username',
email: 'user@me.com',
siteAdmin: true,
databaseID: 0,
tags: [],
Expand All @@ -26,7 +25,7 @@ export const mockUser: AuthenticatedUser = {
session: { __typename: 'Session', canSignOut: true },
tosAccepted: true,
searchable: true,
emails: [],
emails: [{ email: 'user@me.com', isPrimary: true, verified: true }],
latestSettings: null,
}

Expand Down Expand Up @@ -304,7 +303,7 @@ export const mockCodeMonitorNodes: ListCodeMonitors['nodes'] = [
export const mockAuthenticatedUser: AuthenticatedUser = {
id: 'userID',
username: 'username',
email: 'user@me.com',
emails: [{ email: 'user@me.com', isPrimary: true, verified: true }],
siteAdmin: true,
} as AuthenticatedUser

Expand Down
Expand Up @@ -276,7 +276,6 @@ Policies.args = {
databaseID: 1,
username: 'string',
avatarURL: 'string',
email: 'string',
displayName: 'string',
siteAdmin: true,
tags: [],
Expand Down
Expand Up @@ -68,7 +68,6 @@ const searchContextToEdit: SearchContextFields = {
const authUser: AuthenticatedUser = {
__typename: 'User',
id: '0',
email: 'alice@sourcegraph.com',
username: 'alice',
avatarURL: null,
session: { canSignOut: true },
Expand All @@ -87,7 +86,7 @@ const authUser: AuthenticatedUser = {
databaseID: 0,
tosAccepted: true,
searchable: true,
emails: [],
emails: [{ email: 'alice@sourcegraph.com', isPrimary: true, verified: true }],
latestSettings: null,
}

Expand Down
3 changes: 1 addition & 2 deletions client/web/src/integration/graphQlResults.ts
Expand Up @@ -60,7 +60,6 @@ export const commonWebGraphQlResults: Partial<WebGraphQlOperations & SharedGraph
databaseID: 1,
username: 'test',
avatarURL: null,
email: 'felix@sourcegraph.com',
displayName: null,
siteAdmin: true,
tags: [],
Expand All @@ -71,7 +70,7 @@ export const commonWebGraphQlResults: Partial<WebGraphQlOperations & SharedGraph
session: { canSignOut: true },
viewerCanAdminister: true,
searchable: true,
emails: [],
emails: [{ email: 'felix@sourcegraph.com', isPrimary: true, verified: true }],
latestSettings: null,
},
}),
Expand Down
2 changes: 1 addition & 1 deletion client/web/src/marketing/toast/SurveyToast.test.tsx
Expand Up @@ -20,7 +20,7 @@ import { SurveyToast } from '.'
export const mockAuthenticatedUser: AuthenticatedUser = {
id: 'userID',
username: 'username',
email: 'user@me.com',
emails: [{ email: 'user@me.com', isPrimary: true, verified: true }],
} as AuthenticatedUser

describe('SurveyToast', () => {
Expand Down
2 changes: 1 addition & 1 deletion client/web/src/repo/RepoHeader.story.tsx
Expand Up @@ -21,7 +21,7 @@ import repoRevisionContainerStyles from './RepoRevisionContainer.module.scss'
const mockUser = {
id: 'userID',
username: 'username',
email: 'user@me.com',
emails: [{ email: 'user@me.com', isPrimary: true, verified: true }],
siteAdmin: true,
} as AuthenticatedUser

Expand Down
6 changes: 5 additions & 1 deletion client/web/src/search/results/SearchResultsInfoBar.test.tsx
Expand Up @@ -17,7 +17,11 @@ const COMMON_PROPS: Omit<SearchResultsInfoBarProps, 'enableCodeMonitoring'> = {
platformContext: { settings: NEVER, sourcegraphURL: 'https://sourcegraph.com' },
history,
location: createLocation('/search'),
authenticatedUser: { id: 'userID', displayName: 'Chuck Cheese', email: 'chuck@chuckeecheese.com' },
authenticatedUser: {
id: 'userID',
displayName: 'Chuck Cheese',
emails: [{ email: 'chuck@chuckeecheese.com', isPrimary: true, verified: true }],
},
allExpanded: true,
onExpandAllResultsToggle: noop,
onSaveQueryClick: noop,
Expand Down