mirror of
https://github.com/hanzoai/sentinel.git
synced 2026-09-29 22:34:33 +00:00
drop the Sentry wordmark from the react app
FSL-1.0-Apache-2.0 grants us the code, not the name. "Sentry" is Functional Software's trademark, so every place the running app says it to a user -- page titles, onboarding, empty states, toasts, settings copy, the self-hosted footer -- now says Sentinel. Attribution is the other half of the deal and stays untouched: upstream copyright headers, LICENSE, NOTICE. So does anything where the mark is a fact rather than a brand -- @sentry/* packages, sentry-cli, the wizard and bundler plugins, docs.sentry.io, the whole gettingStartedDocs tree. Renaming those would leave instructions that no longer work. Nothing structural moved. No import, identifier, route path, feature flag, API field or test id changed; the diff is 312 lines in and 312 out. Colocated specs were updated in lockstep with the copy they assert. Marketing and community links point at hanzo.ai, only where a real page exists to point at. Co-authored-by: Hanzo Dev <[email protected]>
This commit is contained in:
@@ -41,7 +41,7 @@ export function displayExperimentalSpaAlert() {
|
||||
AlertStore.addAlert({
|
||||
id: 'develop-proxy',
|
||||
message: t(
|
||||
'You are developing against production Sentry API, please BE CAREFUL, as your changes will affect production data.'
|
||||
'You are developing against production Sentinel API, please BE CAREFUL, as your changes will affect production data.'
|
||||
),
|
||||
type: 'warning',
|
||||
opaque: true,
|
||||
|
||||
@@ -93,7 +93,7 @@ export function addErrorMessage(msg: React.ReactNode, options?: Options) {
|
||||
// to prevent page crashes.
|
||||
return addMessageWithType('error')(
|
||||
t(
|
||||
"You've hit an issue, fortunately we use Sentry to monitor Sentry. So it's likely we're already looking into this!"
|
||||
"You've hit an issue, fortunately we use Sentinel to monitor Sentinel. So it's likely we're already looking into this!"
|
||||
),
|
||||
options
|
||||
);
|
||||
|
||||
@@ -9,7 +9,7 @@ describe('FeatureDisabled', function () {
|
||||
);
|
||||
|
||||
expect(
|
||||
screen.getByText('This feature is not enabled on your Sentry installation.')
|
||||
screen.getByText('This feature is not enabled on your Sentinel installation.')
|
||||
).toBeInTheDocument();
|
||||
expect(screen.getByText('Help')).toBeInTheDocument();
|
||||
});
|
||||
@@ -23,7 +23,7 @@ describe('FeatureDisabled', function () {
|
||||
);
|
||||
|
||||
expect(
|
||||
screen.getByText('This feature is not enabled on your Sentry installation.')
|
||||
screen.getByText('This feature is not enabled on your Sentinel installation.')
|
||||
).toBeInTheDocument();
|
||||
expect(screen.getByText('Help')).toBeInTheDocument();
|
||||
});
|
||||
@@ -62,7 +62,7 @@ describe('FeatureDisabled', function () {
|
||||
/>
|
||||
);
|
||||
fireEvent.click(
|
||||
screen.getByText('This feature is not enabled on your Sentry installation.')
|
||||
screen.getByText('This feature is not enabled on your Sentinel installation.')
|
||||
);
|
||||
expect(
|
||||
screen.getByText(/Enable this feature on your sentry installation/)
|
||||
|
||||
@@ -61,7 +61,7 @@ function FeatureDisabled({
|
||||
featureName,
|
||||
alert,
|
||||
hideHelpToggle,
|
||||
message = t('This feature is not enabled on your Sentry installation.'),
|
||||
message = t('This feature is not enabled on your Sentinel installation.'),
|
||||
}: Props) {
|
||||
const [showHelp, setShowHelp] = useState(false);
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ describe('FeatureTourModal', function () {
|
||||
});
|
||||
|
||||
expect(
|
||||
screen.getByText('This feature is not enabled on your Sentry installation.')
|
||||
screen.getByText('This feature is not enabled on your Sentinel installation.')
|
||||
).toBeInTheDocument();
|
||||
|
||||
expect(screen.getByText(/# Enables the Custom Feature feature/)).toBeInTheDocument();
|
||||
|
||||
@@ -28,7 +28,7 @@ function SetupReleasesPrompt() {
|
||||
{t('Resolving is better with Releases')}
|
||||
</SetupReleasesHeader>
|
||||
{t(
|
||||
'Set up Releases so Sentry can bother you when this problem comes back in a future release.'
|
||||
'Set up Releases so Sentinel can bother you when this problem comes back in a future release.'
|
||||
)}
|
||||
</div>
|
||||
<LinkButton
|
||||
|
||||
@@ -48,7 +48,7 @@ export default function getGuidesContent(orgSlug: string | null): GuidesContent
|
||||
title: t('Retrace Your Steps'),
|
||||
target: 'breadcrumbs',
|
||||
description: t(
|
||||
`Not sure how you got here? Sentry automatically captures breadcrumbs for events in web
|
||||
`Not sure how you got here? Sentinel automatically captures breadcrumbs for events in web
|
||||
frameworks to lead you straight to your error.`
|
||||
),
|
||||
},
|
||||
@@ -62,7 +62,7 @@ export default function getGuidesContent(orgSlug: string | null): GuidesContent
|
||||
title: t('Issues'),
|
||||
target: 'issue_stream',
|
||||
description: tct(
|
||||
`Sentry automatically groups similar events together into an issue. Similarity is
|
||||
`Sentinel automatically groups similar events together into an issue. Similarity is
|
||||
determined by stack trace and other factors. [link:Learn more].`,
|
||||
{
|
||||
link: (
|
||||
@@ -332,7 +332,7 @@ function getDemoModeGuides(): GuidesContent {
|
||||
title: t('Issues'),
|
||||
target: 'issues',
|
||||
description: t(
|
||||
`Here's a list of what's broken and slow. Sentry automatically groups similar events together into an issue.`
|
||||
`Here's a list of what's broken and slow. Sentinel automatically groups similar events together into an issue.`
|
||||
),
|
||||
},
|
||||
{
|
||||
@@ -367,7 +367,7 @@ function getDemoModeGuides(): GuidesContent {
|
||||
title: t('Issues'),
|
||||
target: 'issue_stream',
|
||||
description: t(
|
||||
`Sentry automatically groups similar events together into an issue. Similarity is
|
||||
`Sentinel automatically groups similar events together into an issue. Similarity is
|
||||
determined by stack trace and other factors. Click on an issue to learn more.`
|
||||
),
|
||||
},
|
||||
@@ -396,7 +396,7 @@ function getDemoModeGuides(): GuidesContent {
|
||||
title: t('Retrace your steps'),
|
||||
target: 'breadcrumbs',
|
||||
description: t(
|
||||
`Sentry automatically captures breadcrumbs for events so you can see the sequence of events leading up to the error.`
|
||||
`Sentinel automatically captures breadcrumbs for events so you can see the sequence of events leading up to the error.`
|
||||
),
|
||||
nextText: t('Got it'),
|
||||
},
|
||||
|
||||
@@ -50,7 +50,7 @@ export default function DemoHeader() {
|
||||
const url =
|
||||
sandboxData?.cta?.url ||
|
||||
urlAttachQueryParams(
|
||||
'https://sentry.io/signup/',
|
||||
'https://hanzo.ai/signup',
|
||||
extraQueryParameterWithEmail()
|
||||
);
|
||||
|
||||
|
||||
@@ -56,10 +56,10 @@ function DetailedError({className, heading, message, onRetry, hideSupportLinks}:
|
||||
{t('Fill out a report')}
|
||||
</Button>
|
||||
)}
|
||||
<Button priority="link" external href="https://status.sentry.io/">
|
||||
<Button priority="link" external href="https://status.hanzo.ai">
|
||||
{t('Service status')}
|
||||
</Button>
|
||||
<Button priority="link" external href="https://sentry.io/support/">
|
||||
<Button priority="link" external href="https://hanzo.ai/support">
|
||||
{t('Contact support')}
|
||||
</Button>
|
||||
</ButtonBar>
|
||||
|
||||
@@ -72,7 +72,7 @@ function ErrorDescription({
|
||||
icon={<IconFlag size="xl" />}
|
||||
title={t('We need your consent')}
|
||||
description={t(
|
||||
'By using this feature, you agree that OpenAI is a subprocessor and may process the data that you’ve chosen to submit. Sentry makes no guarantees as to the accuracy of the feature’s AI-generated recommendations.'
|
||||
'By using this feature, you agree that OpenAI is a subprocessor and may process the data that you’ve chosen to submit. Sentinel makes no guarantees as to the accuracy of the feature’s AI-generated recommendations.'
|
||||
)}
|
||||
action={
|
||||
<ButtonBar gap={2}>
|
||||
|
||||
@@ -145,7 +145,7 @@ class GroupVariant extends Component<Props, State> {
|
||||
size="xs"
|
||||
position="top"
|
||||
title={t(
|
||||
'Overrides the default grouping by a Sentry defined fingerprinting rule'
|
||||
'Overrides the default grouping by a Sentinel defined fingerprinting rule'
|
||||
)}
|
||||
/>
|
||||
</TextWithQuestionTooltip>,
|
||||
|
||||
@@ -455,8 +455,8 @@ export function ActionableItems({event, project, isShare}: ActionableItemsProps)
|
||||
}
|
||||
>
|
||||
{hasErrorAlert
|
||||
? t('Sentry has identified the following problems for you to fix')
|
||||
: t('Sentry has identified the following problems for you to monitor')}
|
||||
? t('Sentinel has identified the following problems for you to fix')
|
||||
: t('Sentinel has identified the following problems for you to monitor')}
|
||||
</StyledAlert>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -68,7 +68,7 @@ function getErrorMessage(
|
||||
{
|
||||
title: t('Event missing Release tag'),
|
||||
desc: t(
|
||||
'Integrate Sentry into your release pipeline using a tool like Webpack or the CLI.'
|
||||
'Integrate Sentinel into your release pipeline using a tool like Webpack or the CLI.'
|
||||
),
|
||||
docsLink: defaultDocsLink,
|
||||
},
|
||||
@@ -154,7 +154,7 @@ function getErrorMessage(
|
||||
{
|
||||
title: t("Source Map File doesn't exist"),
|
||||
desc: t(
|
||||
"Sentry couldn't fetch the source map file for this event. Read our docs for troubleshooting help."
|
||||
"Sentinel couldn't fetch the source map file for this event. Read our docs for troubleshooting help."
|
||||
),
|
||||
docsLink: getTroubleshootingLink(),
|
||||
},
|
||||
|
||||
+2
-2
@@ -20,7 +20,7 @@ export function getImageFeatureDescription(type: ImageFeature) {
|
||||
return {
|
||||
label: t('sources'),
|
||||
description: t(
|
||||
'Source code information allows Sentry to display source code context for stack frames'
|
||||
'Source code information allows Sentinel to display source code context for stack frames'
|
||||
),
|
||||
};
|
||||
case ImageFeature.HAS_SYMBOLS:
|
||||
@@ -53,7 +53,7 @@ export function getSourceTooltipDescription(
|
||||
) {
|
||||
if (source === INTERNAL_SOURCE) {
|
||||
return t(
|
||||
"This debug information file is from Sentry's internal symbol server for this project"
|
||||
"This debug information file is from Sentinel's internal symbol server for this project"
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@ describe('Debug Meta - Image Details', function () {
|
||||
const sourceNames = screen
|
||||
.getAllByTestId('source-name')
|
||||
.map(sourceName => sourceName.textContent);
|
||||
expect(sourceNames).toEqual(['America', 'Austria', 'Belgium', 'Sentry']);
|
||||
expect(sourceNames).toEqual(['America', 'Austria', 'Belgium', 'Sentinel']);
|
||||
|
||||
// Check location order.
|
||||
// The UI shall sort the candidates by source location (alphabetical)
|
||||
|
||||
@@ -200,7 +200,7 @@ export class DebugImageDetails extends DeprecatedAsyncComponent<Props, State> {
|
||||
symbolType,
|
||||
fileType: getPrettyFileType(debugFile),
|
||||
source: INTERNAL_SOURCE,
|
||||
source_name: t('Sentry'),
|
||||
source_name: t('Sentinel'),
|
||||
};
|
||||
});
|
||||
|
||||
|
||||
@@ -179,7 +179,7 @@ export function SourceMapsDebuggerModal({
|
||||
<Body>
|
||||
<p>
|
||||
{t(
|
||||
"It looks like the original source code for this stack frame couldn't be determined when this error was captured. To get the original code for this stack frame, Sentry needs source maps to be configured."
|
||||
"It looks like the original source code for this stack frame couldn't be determined when this error was captured. To get the original code for this stack frame, Sentinel needs source maps to be configured."
|
||||
)}
|
||||
</p>
|
||||
<WizardInstructionParagraph>
|
||||
@@ -357,7 +357,7 @@ export function SourceMapsDebuggerModal({
|
||||
<TabPanels.Item key="fetching">
|
||||
<p>
|
||||
{tct(
|
||||
'Sentry will fetch your source files and source maps if you [link:host them publicly].',
|
||||
'Sentinel will fetch your source files and source maps if you [link:host them publicly].',
|
||||
{
|
||||
link: (
|
||||
<ExternalLinkWithIcon href="https://docs.sentry.io/platforms/javascript/sourcemaps/uploading/hosting-publicly/" />
|
||||
@@ -567,12 +567,12 @@ function HasDebugIdChecklistItem({
|
||||
<h6>Uploaded Files Not Deployed</h6>
|
||||
<p>
|
||||
{t(
|
||||
"It seems you already uploaded artifacts with Debug IDs, however, this event doesn't contain any Debug IDs yet. Generally this means that you didn't deploy the same files you injected the Debug IDs into. For Sentry to be able to show your original source code, it is required that you deploy the exact same files that you uploaded to Sentry."
|
||||
"It seems you already uploaded artifacts with Debug IDs, however, this event doesn't contain any Debug IDs yet. Generally this means that you didn't deploy the same files you injected the Debug IDs into. For Sentinel to be able to show your original source code, it is required that you deploy the exact same files that you uploaded to Sentinel."
|
||||
)}
|
||||
</p>
|
||||
<p>
|
||||
{tct(
|
||||
'If you are using a [bundlerPluginRepoLink:Sentry Plugin for your Bundler], the plugin needs to be active when building your production app. You cannot do two separate builds, for example, one for uploading to Sentry with the plugin being active and one for deploying without the plugin. The plugin needs to be active for every build.',
|
||||
'If you are using a [bundlerPluginRepoLink:Sentry Plugin for your Bundler], the plugin needs to be active when building your production app. You cannot do two separate builds, for example, one for uploading to Sentinel with the plugin being active and one for deploying without the plugin. The plugin needs to be active for every build.',
|
||||
{
|
||||
bundlerPluginRepoLink: (
|
||||
<ExternalLinkWithIcon href="https://github.com/getsentry/sentry-javascript-bundler-plugins" />
|
||||
@@ -593,7 +593,7 @@ function HasDebugIdChecklistItem({
|
||||
</p>
|
||||
<p>
|
||||
{tct(
|
||||
'Read the [link:Sentry Source Maps Documentation] to learn how to inject Debug IDs into your build artifacts and how to upload them to Sentry.',
|
||||
'Read the [link:Sentry Source Maps Documentation] to learn how to inject Debug IDs into your build artifacts and how to upload them to Sentinel.',
|
||||
{
|
||||
link: (
|
||||
<ExternalLinkWithIcon href="https://docs.sentry.io/platforms/javascript/sourcemaps/" />
|
||||
@@ -612,7 +612,7 @@ function HasDebugIdChecklistItem({
|
||||
<h6>{t('No Debug ID Tooling Used')}</h6>
|
||||
<p>
|
||||
{tct(
|
||||
"This event doesn't contain any Debug IDs. Read the [link:Sentry Source Maps Documentation] to learn how to inject Debug IDs into your build artifacts and how to upload them to Sentry.",
|
||||
"This event doesn't contain any Debug IDs. Read the [link:Sentry Source Maps Documentation] to learn how to inject Debug IDs into your build artifacts and how to upload them to Sentinel.",
|
||||
{
|
||||
link: (
|
||||
<ExternalLinkWithIcon href="https://docs.sentry.io/platforms/javascript/sourcemaps/" />
|
||||
@@ -660,7 +660,7 @@ function UploadedSourceFileWithCorrectDebugIdChecklistItem({
|
||||
</p>
|
||||
<p>
|
||||
{t(
|
||||
'Make sure to inject Debug IDs into all of your source files and to upload all of them to Sentry.'
|
||||
'Make sure to inject Debug IDs into all of your source files and to upload all of them to Sentinel.'
|
||||
)}
|
||||
</p>
|
||||
{/* TODO: Link to Uploaded Artifacts */}
|
||||
@@ -675,7 +675,7 @@ function UploadedSourceFileWithCorrectDebugIdChecklistItem({
|
||||
<h6>{t('No Artifacts With Debug IDs Uploaded')}</h6>
|
||||
<p>
|
||||
{tct(
|
||||
"You didn't upload any artifacts with debug IDs yet. Read the [link:Sentry Source Maps Documentation] to learn how to inject Debug IDs into your build artifacts and how to upload them to Sentry.",
|
||||
"You didn't upload any artifacts with debug IDs yet. Read the [link:Sentry Source Maps Documentation] to learn how to inject Debug IDs into your build artifacts and how to upload them to Sentinel.",
|
||||
{
|
||||
link: (
|
||||
<ExternalLinkWithIcon href="https://docs.sentry.io/platforms/javascript/sourcemaps/" />
|
||||
@@ -724,7 +724,7 @@ function UploadedSourceMapWithCorrectDebugIdChecklistItem({
|
||||
</p>
|
||||
<p>
|
||||
{t(
|
||||
'Make sure to inject Debug IDs into all of your source files and to upload all of them to Sentry.'
|
||||
'Make sure to inject Debug IDs into all of your source files and to upload all of them to Sentinel.'
|
||||
)}
|
||||
</p>
|
||||
{/* TODO: Link to Uploaded Artifacts */}
|
||||
@@ -740,7 +740,7 @@ function UploadedSourceMapWithCorrectDebugIdChecklistItem({
|
||||
<h6>{t('No Artifacts Uploaded')}</h6>
|
||||
<p>
|
||||
{tct(
|
||||
"You didn't upload any artifacts with debug IDs yet. Read the [link:Sentry Source Maps Documentation] to learn how to inject Debug IDs into your build artifacts and how to upload them to Sentry.",
|
||||
"You didn't upload any artifacts with debug IDs yet. Read the [link:Sentry Source Maps Documentation] to learn how to inject Debug IDs into your build artifacts and how to upload them to Sentinel.",
|
||||
{
|
||||
link: (
|
||||
<ExternalLinkWithIcon href="https://docs.sentry.io/platforms/javascript/sourcemaps/" />
|
||||
@@ -827,13 +827,13 @@ function ReleaseHasUploadedArtifactsChecklistItem({
|
||||
<h6>{t('No Uploaded Artifacts')}</h6>
|
||||
<p>
|
||||
{t(
|
||||
"The release this event belongs to doesn't have any uploaded artifacts. Upload your build artifacts to Sentry using the release:"
|
||||
"The release this event belongs to doesn't have any uploaded artifacts. Upload your build artifacts to Sentinel using the release:"
|
||||
)}{' '}
|
||||
<MonoBlock>{sourceResolutionResults.release}</MonoBlock>
|
||||
</p>
|
||||
<p>
|
||||
{tct(
|
||||
'Read the [link:Sentry Source Maps Documentation] to learn how to to upload your build artifacts to Sentry.',
|
||||
'Read the [link:Sentry Source Maps Documentation] to learn how to to upload your build artifacts to Sentinel.',
|
||||
{
|
||||
link: <ExternalLinkWithIcon href={docsLink} />,
|
||||
}
|
||||
@@ -875,14 +875,14 @@ function ReleaseSourceFileMatchingChecklistItem({
|
||||
{sourceResolutionResults.dist !== null ? (
|
||||
<p>
|
||||
{tct(
|
||||
'Upload your build artifacts to Sentry using the dist [dist] or adjust the dist value in your SDK options.',
|
||||
'Upload your build artifacts to Sentinel using the dist [dist] or adjust the dist value in your SDK options.',
|
||||
{dist: <MonoBlock>{sourceResolutionResults.dist}</MonoBlock>}
|
||||
)}
|
||||
</p>
|
||||
) : (
|
||||
<p>
|
||||
{tct(
|
||||
'Upload your build artifacts to Sentry using a matching [dist] value or adjust the [dist] value in your SDK options.',
|
||||
'Upload your build artifacts to Sentinel using a matching [dist] value or adjust the [dist] value in your SDK options.',
|
||||
{dist: <MonoBlock>dist</MonoBlock>}
|
||||
)}
|
||||
</p>
|
||||
@@ -924,7 +924,7 @@ function ReleaseSourceFileMatchingChecklistItem({
|
||||
</p>
|
||||
<p>
|
||||
{t(
|
||||
"Sentry was not able to find a file in the release's artifacts that matches one of the following paths:"
|
||||
"Sentinel was not able to find a file in the release's artifacts that matches one of the following paths:"
|
||||
)}
|
||||
</p>
|
||||
<InstructionList>
|
||||
@@ -1017,14 +1017,14 @@ function ReleaseSourceMapMatchingChecklistItem({
|
||||
{sourceResolutionResults.dist !== null ? (
|
||||
<p>
|
||||
{tct(
|
||||
'Upload your build artifacts to Sentry using the dist [dist] or adjust the dist value in your SDK options.',
|
||||
'Upload your build artifacts to Sentinel using the dist [dist] or adjust the dist value in your SDK options.',
|
||||
{dist: <MonoBlock>{sourceResolutionResults.dist}</MonoBlock>}
|
||||
)}
|
||||
</p>
|
||||
) : (
|
||||
<p>
|
||||
{tct(
|
||||
'Upload your build artifacts to Sentry using a matching [dist] value or adjust the [dist] value in your SDK options.',
|
||||
'Upload your build artifacts to Sentinel using a matching [dist] value or adjust the [dist] value in your SDK options.',
|
||||
{dist: <MonoBlock>dist</MonoBlock>}
|
||||
)}
|
||||
</p>
|
||||
@@ -1096,7 +1096,7 @@ function ScrapingSourceFileAvailableChecklistItem({
|
||||
|
||||
if (sourceResolutionResults.sourceFileScrapingStatus.status === 'success') {
|
||||
return (
|
||||
<CheckListItem status="checked" title={t('Source file available to Sentry')} />
|
||||
<CheckListItem status="checked" title={t('Source file available to Sentinel')} />
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1107,7 +1107,7 @@ function ScrapingSourceFileAvailableChecklistItem({
|
||||
<h6>{t('Fetching Was Not Attempted')}</h6>
|
||||
<p>
|
||||
{t(
|
||||
'The source file was already located via Debug IDs or Releases. Sentry will only attempt to fetch the source file from your servers as a fallback mechanism.'
|
||||
'The source file was already located via Debug IDs or Releases. Sentinel will only attempt to fetch the source file from your servers as a fallback mechanism.'
|
||||
)}
|
||||
</p>
|
||||
</CheckListInstruction>
|
||||
@@ -1122,19 +1122,19 @@ function ScrapingSourceFileAvailableChecklistItem({
|
||||
] ?? SOURCE_FILE_SCRAPING_REASON_MAP.other;
|
||||
|
||||
return (
|
||||
<CheckListItem status="alert" title={t('Source file is not available to Sentry')}>
|
||||
<CheckListItem status="alert" title={t('Source file is not available to Sentinel')}>
|
||||
<CheckListInstruction type="muted">
|
||||
<h6>
|
||||
{t('Error While Fetching The Source File:')} {failureReasonTexts.shortName}
|
||||
</h6>
|
||||
<p>{failureReasonTexts.explanation}</p>
|
||||
<p>
|
||||
{t('Sentry looked for the source file at this location:')}{' '}
|
||||
{t('Sentinel looked for the source file at this location:')}{' '}
|
||||
<MonoBlock>{sourceResolutionResults.sourceFileScrapingStatus.url}</MonoBlock>
|
||||
</p>
|
||||
{sourceResolutionResults.sourceFileScrapingStatus.details && (
|
||||
<Fragment>
|
||||
<p>{t('Sentry symbolification error message:')}</p>
|
||||
<p>{t('Sentinel symbolification error message:')}</p>
|
||||
<ScrapingSymbolificationErrorMessage>
|
||||
"{sourceResolutionResults.sourceFileScrapingStatus.details}"
|
||||
</ScrapingSymbolificationErrorMessage>
|
||||
@@ -1151,11 +1151,11 @@ function ScrapingSourceMapAvailableChecklistItem({
|
||||
sourceResolutionResults: FrameSourceMapDebuggerData;
|
||||
}) {
|
||||
if (sourceResolutionResults.sourceMapScrapingStatus?.status === 'success') {
|
||||
return <CheckListItem status="checked" title={t('Source map available to Sentry')} />;
|
||||
return <CheckListItem status="checked" title={t('Source map available to Sentinel')} />;
|
||||
}
|
||||
|
||||
if (sourceResolutionResults.sourceFileScrapingStatus?.status !== 'success') {
|
||||
return <CheckListItem status="none" title={t('Source map available to Sentry')} />;
|
||||
return <CheckListItem status="none" title={t('Source map available to Sentinel')} />;
|
||||
}
|
||||
|
||||
if (sourceResolutionResults.sourceMapScrapingStatus === null) {
|
||||
@@ -1177,7 +1177,7 @@ function ScrapingSourceMapAvailableChecklistItem({
|
||||
<h6>{t('Fetching Was Not Attempted')}</h6>
|
||||
<p>
|
||||
{t(
|
||||
'The source map was already located via Debug IDs or Releases. Sentry will only attempt to fetch the source map from your servers as a fallback mechanism.'
|
||||
'The source map was already located via Debug IDs or Releases. Sentinel will only attempt to fetch the source map from your servers as a fallback mechanism.'
|
||||
)}
|
||||
</p>
|
||||
</CheckListInstruction>
|
||||
@@ -1192,19 +1192,19 @@ function ScrapingSourceMapAvailableChecklistItem({
|
||||
] ?? SOURCE_MAP_SCRAPING_REASON_MAP.other;
|
||||
|
||||
return (
|
||||
<CheckListItem status="alert" title={t('Source map is not available to Sentry')}>
|
||||
<CheckListItem status="alert" title={t('Source map is not available to Sentinel')}>
|
||||
<CheckListInstruction type="muted">
|
||||
<h6>
|
||||
{t('Error While Fetching The Source Map:')} {failureReasonTexts.shortName}
|
||||
</h6>
|
||||
<p>{failureReasonTexts.explanation}</p>
|
||||
<p>
|
||||
{t('Sentry looked for the source map at this location:')}{' '}
|
||||
{t('Sentinel looked for the source map at this location:')}{' '}
|
||||
<MonoBlock>{sourceResolutionResults.sourceMapScrapingStatus.url}</MonoBlock>
|
||||
</p>
|
||||
{sourceResolutionResults.sourceMapScrapingStatus.details && (
|
||||
<Fragment>
|
||||
<p>{t('Sentry symbolification error message:')}</p>
|
||||
<p>{t('Sentinel symbolification error message:')}</p>
|
||||
<ScrapingSymbolificationErrorMessage>
|
||||
"{sourceResolutionResults.sourceMapScrapingStatus.details}"
|
||||
</ScrapingSymbolificationErrorMessage>
|
||||
|
||||
@@ -228,9 +228,9 @@ export function FeedbackModal<T extends Data>({
|
||||
{isSelfHosted && showSelfHostedMessage && (
|
||||
<Alert type="info">
|
||||
{tct(
|
||||
"You agree that any feedback you submit is subject to Sentry's [privacyPolicy:Privacy Policy] and Sentry may use such feedback without restriction or obligation.",
|
||||
"You agree that any feedback you submit is subject to Sentinel's [privacyPolicy:Privacy Policy] and Sentinel may use such feedback without restriction or obligation.",
|
||||
{
|
||||
privacyPolicy: <ExternalLink href="https://sentry.io/privacy/" />,
|
||||
privacyPolicy: <ExternalLink href="https://hanzo.ai/privacy" />,
|
||||
}
|
||||
)}
|
||||
</Alert>
|
||||
|
||||
@@ -31,7 +31,7 @@ function BaseFooter({className}: Props) {
|
||||
<LeftLinks>
|
||||
{isSelfHosted && (
|
||||
<Fragment>
|
||||
{'Sentry '}
|
||||
{'Sentinel '}
|
||||
{getDynamicText({
|
||||
fixed: 'Acceptance Test',
|
||||
value: version.current,
|
||||
@@ -47,7 +47,7 @@ function BaseFooter({className}: Props) {
|
||||
{privacyUrl && <FooterLink href={privacyUrl}>{t('Privacy Policy')}</FooterLink>}
|
||||
{termsUrl && <FooterLink href={termsUrl}>{t('Terms of Use')}</FooterLink>}
|
||||
</LeftLinks>
|
||||
<SentryLogoLink href="https://sentry.io/welcome/" tabIndex={-1}>
|
||||
<SentryLogoLink href="https://hanzo.ai" tabIndex={-1}>
|
||||
<SentryLogoHook
|
||||
size="lg"
|
||||
pride={(organization?.features ?? []).includes('sentry-pride-logo-footer')}
|
||||
@@ -55,7 +55,7 @@ function BaseFooter({className}: Props) {
|
||||
</SentryLogoLink>
|
||||
<RightLinks>
|
||||
{!isSelfHosted && (
|
||||
<FooterLink href="https://status.sentry.io/">{t('Service Status')}</FooterLink>
|
||||
<FooterLink href="https://status.hanzo.ai">{t('Service Status')}</FooterLink>
|
||||
)}
|
||||
<FooterLink href="/api/">{t('API')}</FooterLink>
|
||||
<FooterLink href="/docs/">{t('Docs')}</FooterLink>
|
||||
|
||||
@@ -244,7 +244,7 @@ export class RenderField extends Component<RenderProps, State> {
|
||||
/>
|
||||
<RightArrow size="xs" direction="right" />
|
||||
<SelectControl
|
||||
placeholder={t('Sentry project\u2026')}
|
||||
placeholder={t('Sentinel project\u2026')}
|
||||
name="project"
|
||||
options={projectOptions}
|
||||
components={{
|
||||
|
||||
@@ -20,7 +20,7 @@ export interface RenderFieldProps extends InputFieldProps {
|
||||
function SentryProjectSelectorField({
|
||||
projects,
|
||||
avatarSize = 20,
|
||||
placeholder = t('Choose Sentry project'),
|
||||
placeholder = t('Choose Sentinel project'),
|
||||
valueIsSlug,
|
||||
...props
|
||||
}: RenderFieldProps) {
|
||||
|
||||
@@ -5,7 +5,7 @@ import ExternalLink from 'sentry/components/links/externalLink';
|
||||
import {tct} from 'sentry/locale';
|
||||
import type {Project} from 'sentry/types';
|
||||
|
||||
const sentryStatusPageLink = 'https://status.sentry.io/';
|
||||
const sentryStatusPageLink = 'https://status.hanzo.ai';
|
||||
|
||||
type Props = {
|
||||
projects: Project[];
|
||||
|
||||
@@ -80,7 +80,7 @@ describe('SentryAppExternalIssueForm', () => {
|
||||
data: {
|
||||
action: 'create',
|
||||
description:
|
||||
'Sentry Issue: [SEN123](https://sentry.io/organizations/sentry/issues/123/?project=1&referrer=Sample%20App)',
|
||||
'Sentinel Issue: [SEN123](https://sentry.io/organizations/sentry/issues/123/?project=1&referrer=Sample%20App)',
|
||||
groupId: '1',
|
||||
numbers: 'number_1',
|
||||
title: 'ApiError: Broken',
|
||||
@@ -109,7 +109,7 @@ describe('SentryAppExternalIssueForm', () => {
|
||||
referrer: sentryApp.name,
|
||||
});
|
||||
expect(screen.getByRole('textbox', {name: 'Description'})).toHaveValue(
|
||||
`Sentry Issue: [${group.shortId}](${url})`
|
||||
`Sentinel Issue: [${group.shortId}](${url})`
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -57,7 +57,7 @@ function SentryAppExternalIssueForm({
|
||||
const queryParams = {referrer: appName};
|
||||
const url = addQueryParamsToExistingUrl(group.permalink, queryParams);
|
||||
const shortId = group.shortId;
|
||||
return t('Sentry Issue: [%s](%s)%s', shortId, url, stackTrace);
|
||||
return t('Sentinel Issue: [%s](%s)%s', shortId, url, stackTrace);
|
||||
default:
|
||||
return '';
|
||||
}
|
||||
|
||||
@@ -64,7 +64,7 @@ function CreateNewIntegrationModal({
|
||||
</RadioChoiceHeader>,
|
||||
<RadioChoiceDescription key="description-public">
|
||||
{tct(
|
||||
'A public integration will be available for all Sentry users for installation. See more info on [docsLink].',
|
||||
'A public integration will be available for all Sentinel users for installation. See more info on [docsLink].',
|
||||
{
|
||||
docsLink: (
|
||||
<ExternalLink
|
||||
@@ -89,11 +89,11 @@ function CreateNewIntegrationModal({
|
||||
choices.push([
|
||||
'sentry-fx',
|
||||
<RadioChoiceHeader data-test-id="sentry-function" key="header-sentryfx">
|
||||
{t('Sentry Function')}
|
||||
{t('Sentinel Function')}
|
||||
</RadioChoiceHeader>,
|
||||
<RadioChoiceDescription key="description-sentry-function">
|
||||
{t(
|
||||
'A Sentry Function is a new type of integration leveraging the power of cloud functions.'
|
||||
'A Sentinel Function is a new type of integration leveraging the power of cloud functions.'
|
||||
)}
|
||||
</RadioChoiceDescription>,
|
||||
]);
|
||||
|
||||
@@ -19,7 +19,7 @@ function StepOne({stepOneData, onSetStepOneData}: Props) {
|
||||
<Fragment>
|
||||
<Alert type="info">
|
||||
{tct(
|
||||
'Please enter the [docLink:App Store Connect API Key] details. The key needs to have the "Developer" role for Sentry to discover the app builds.',
|
||||
'Please enter the [docLink:App Store Connect API Key] details. The key needs to have the "Developer" role for Sentinel to discover the app builds.',
|
||||
{
|
||||
docLink: (
|
||||
<ExternalLink href="https://developer.apple.com/documentation/appstoreconnectapi/creating_api_keys_for_app_store_connect_api" />
|
||||
|
||||
@@ -70,7 +70,7 @@ describe('DemoEndModal', function () {
|
||||
))
|
||||
);
|
||||
|
||||
const signUpButton = screen.getByRole('button', {name: 'Sign up for Sentry'});
|
||||
const signUpButton = screen.getByRole('button', {name: 'Sign up for Sentinel'});
|
||||
expect(signUpButton).toBeInTheDocument();
|
||||
expect(signUpButton).toHaveAttribute('href', 'https://sentry.io/signup/');
|
||||
});
|
||||
|
||||
@@ -31,7 +31,7 @@ export default function DemoEndingModal({tour, closeModal, CloseButton, orgSlug}
|
||||
case 'issues':
|
||||
cardTitle = t('Issues Tour');
|
||||
body = t(
|
||||
'Thank you for completing the Issues tour. Learn about other Sentry features by starting another tour.'
|
||||
'Thank you for completing the Issues tour. Learn about other Sentinel features by starting another tour.'
|
||||
);
|
||||
guides = ['issues_v3', 'issue_stream_v3'];
|
||||
path = `/organizations/${orgSlug}/issues/`;
|
||||
@@ -39,7 +39,7 @@ export default function DemoEndingModal({tour, closeModal, CloseButton, orgSlug}
|
||||
case 'performance':
|
||||
cardTitle = t('Performance Tour');
|
||||
body = t(
|
||||
'Thank you for completing the Performance tour. Learn about other Sentry features by starting another tour.'
|
||||
'Thank you for completing the Performance tour. Learn about other Sentinel features by starting another tour.'
|
||||
);
|
||||
guides = ['performance', 'transaction_summary', 'transaction_details_v2'];
|
||||
path = `/organizations/${orgSlug}/performance/`;
|
||||
@@ -47,7 +47,7 @@ export default function DemoEndingModal({tour, closeModal, CloseButton, orgSlug}
|
||||
case 'releases':
|
||||
cardTitle = t('Releases Tour');
|
||||
body = t(
|
||||
'Thank you for completing the Releases tour. Learn about other Sentry features by starting another tour.'
|
||||
'Thank you for completing the Releases tour. Learn about other Sentinel features by starting another tour.'
|
||||
);
|
||||
guides = ['releases_v2', 'react-native-release', 'release-details_v2'];
|
||||
path = `/organizations/${orgSlug}/releases/`;
|
||||
@@ -55,7 +55,7 @@ export default function DemoEndingModal({tour, closeModal, CloseButton, orgSlug}
|
||||
case 'tabs':
|
||||
cardTitle = t('Check out the different tabs');
|
||||
body = t(
|
||||
'Thank you for checking out the different tabs. Learn about other Sentry features by starting another tour.'
|
||||
'Thank you for checking out the different tabs. Learn about other Sentinel features by starting another tour.'
|
||||
);
|
||||
guides = ['sidebar_v2'];
|
||||
path = `/organizations/${orgSlug}/projects/`;
|
||||
@@ -64,7 +64,7 @@ export default function DemoEndingModal({tour, closeModal, CloseButton, orgSlug}
|
||||
}
|
||||
|
||||
const sandboxData = window.SandboxData;
|
||||
const url = sandboxData?.cta?.url || 'https://sentry.io/signup/';
|
||||
const url = sandboxData?.cta?.url || 'https://hanzo.ai/signup';
|
||||
|
||||
const navigation = useCallback(() => {
|
||||
navigate(path);
|
||||
@@ -128,7 +128,7 @@ export default function DemoEndingModal({tour, closeModal, CloseButton, orgSlug}
|
||||
});
|
||||
}}
|
||||
>
|
||||
{sandboxData?.cta?.title || t('Sign up for Sentry')}
|
||||
{sandboxData?.cta?.title || t('Sign up for Sentinel')}
|
||||
</SignUpButton>
|
||||
<ButtonBar>
|
||||
<Button onClick={handleMoreTours}>{t('More Tours')} </Button>
|
||||
|
||||
@@ -17,7 +17,7 @@ type Props = ModalRenderProps;
|
||||
|
||||
function DemoSignUpModal({closeModal}: Props) {
|
||||
const signupUrl = urlAttachQueryParams(
|
||||
'https://sentry.io/signup/',
|
||||
'https://hanzo.ai/signup',
|
||||
extraQueryParameter()
|
||||
);
|
||||
const demoUrl = urlAttachQueryParams(
|
||||
|
||||
@@ -20,7 +20,7 @@ function NavigateToExternalLinkModal({Body, closeModal, Header, linkText}: Props
|
||||
<Body>
|
||||
<p>
|
||||
{t(
|
||||
"You're leaving Sentry and will be redirected to the following external website:"
|
||||
"You're leaving Sentinel and will be redirected to the following external website:"
|
||||
)}
|
||||
</p>
|
||||
<ParagraphContainer>{linkText}</ParagraphContainer>
|
||||
|
||||
@@ -96,7 +96,7 @@ class SuggestProjectModal extends Component<Props, State> {
|
||||
}
|
||||
>
|
||||
<p>
|
||||
{t('Let the right folks know about Sentry Mobile Application Monitoring.')}
|
||||
{t('Let the right folks know about Sentinel Mobile Application Monitoring.')}
|
||||
</p>
|
||||
<EmailField
|
||||
required
|
||||
@@ -127,7 +127,7 @@ class SuggestProjectModal extends Component<Props, State> {
|
||||
<ModalContainer>
|
||||
<SmallP>
|
||||
{t(
|
||||
"Sentry for Mobile shows a holistic overview of your application's health in real time. So you can correlate errors with releases, tags, and devices to solve problems quickly, decrease churn, and improve user retention."
|
||||
"Sentinel for Mobile shows a holistic overview of your application's health in real time. So you can correlate errors with releases, tags, and devices to solve problems quickly, decrease churn, and improve user retention."
|
||||
)}
|
||||
</SmallP>
|
||||
|
||||
@@ -191,7 +191,7 @@ class SuggestProjectModal extends Component<Props, State> {
|
||||
render() {
|
||||
const {Header} = this.props;
|
||||
const {askTeammate} = this.state;
|
||||
const header = askTeammate ? t('Tell a Teammate') : t('Try Sentry for Mobile');
|
||||
const header = askTeammate ? t('Tell a Teammate') : t('Try Sentinel for Mobile');
|
||||
return (
|
||||
<Fragment>
|
||||
<Header>
|
||||
|
||||
@@ -126,16 +126,16 @@ describe('Adds, deletes, and updates notification actions', function () {
|
||||
);
|
||||
|
||||
await userEvent.click(screen.getByText('Add Action'));
|
||||
expect(screen.getByText('Send a Sentry notification')).toBeInTheDocument();
|
||||
expect(screen.getByText('Send a Sentinel notification')).toBeInTheDocument();
|
||||
expect(screen.getByText('Send a Slack notification')).toBeInTheDocument();
|
||||
expect(screen.getByText('Send a Pagerduty notification')).toBeInTheDocument();
|
||||
expect(screen.getByText('Send an Opsgenie notification')).toBeInTheDocument();
|
||||
|
||||
await userEvent.click(screen.getByText('Send a Sentry notification'));
|
||||
await userEvent.click(screen.getByText('Send a Sentinel notification'));
|
||||
|
||||
// Can only have 1 sentry notification
|
||||
await userEvent.click(screen.getByText('Add Action'));
|
||||
expect(screen.queryByText('Send a Sentry notification')).not.toBeInTheDocument();
|
||||
expect(screen.queryByText('Send a Sentinel notification')).not.toBeInTheDocument();
|
||||
expect(screen.getByText('Send a Slack notification')).toBeInTheDocument();
|
||||
expect(screen.getByText('Send a Pagerduty notification')).toBeInTheDocument();
|
||||
expect(screen.getByText('Send an Opsgenie notification')).toBeInTheDocument();
|
||||
|
||||
@@ -178,7 +178,7 @@ function NotificationActionManager({
|
||||
const getLabel = (serviceType: string) => {
|
||||
switch (serviceType) {
|
||||
case NotificationActionService.SENTRY_NOTIFICATION:
|
||||
return t('Send a Sentry notification');
|
||||
return t('Send a Sentinel notification');
|
||||
case NotificationActionService.OPSGENIE:
|
||||
return t('Send an Opsgenie notification');
|
||||
default:
|
||||
|
||||
@@ -88,7 +88,7 @@ export const getJSMetricsOnboarding = ({
|
||||
},
|
||||
{
|
||||
description: t(
|
||||
'With a bit of delay you can see the data appear in the Sentry UI.'
|
||||
'With a bit of delay you can see the data appear in the Sentinel UI.'
|
||||
),
|
||||
},
|
||||
{
|
||||
@@ -180,7 +180,7 @@ export const getJSServerMetricsOnboarding = (): OnboardingConfig => ({
|
||||
},
|
||||
{
|
||||
description: t(
|
||||
'With a bit of delay you can see the data appear in the Sentry UI.'
|
||||
'With a bit of delay you can see the data appear in the Sentinel UI.'
|
||||
),
|
||||
},
|
||||
{
|
||||
@@ -284,7 +284,7 @@ export const getPythonMetricsOnboarding = ({
|
||||
},
|
||||
{
|
||||
description: t(
|
||||
'With a bit of delay you can see the data appear in the Sentry UI.'
|
||||
'With a bit of delay you can see the data appear in the Sentinel UI.'
|
||||
),
|
||||
},
|
||||
{
|
||||
@@ -373,7 +373,7 @@ export const getDotnetMetricsOnboarding = ({
|
||||
},
|
||||
{
|
||||
description: t(
|
||||
'With a bit of delay you can see the data appear in the Sentry UI.'
|
||||
'With a bit of delay you can see the data appear in the Sentinel UI.'
|
||||
),
|
||||
},
|
||||
{
|
||||
|
||||
@@ -40,7 +40,7 @@ describe('Onboarding Product Selection', function () {
|
||||
textWithMarkupMatcher(/In this quick guide you’ll use npm or yarn/)
|
||||
)
|
||||
).toBeInTheDocument();
|
||||
expect(screen.queryByText('Prefer to set up Sentry using')).not.toBeInTheDocument();
|
||||
expect(screen.queryByText('Prefer to set up Sentinel using')).not.toBeInTheDocument();
|
||||
|
||||
// Error monitoring shall be checked and disabled by default
|
||||
expect(screen.getByRole('checkbox', {name: 'Error Monitoring'})).toBeChecked();
|
||||
@@ -131,7 +131,7 @@ describe('Onboarding Product Selection', function () {
|
||||
).toBeInTheDocument();
|
||||
expect(
|
||||
screen.getByText(
|
||||
textWithMarkupMatcher(/Prefer to set up Sentry using npm or yarn\?/)
|
||||
textWithMarkupMatcher(/Prefer to set up Sentinel using npm or yarn\?/)
|
||||
)
|
||||
).toBeInTheDocument();
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ function getDisabledProducts(organization: Organization): DisabledProducts {
|
||||
const hasPerformance = organization.features.includes('performance-view');
|
||||
const hasProfiling = organization.features.includes('profiling-view');
|
||||
|
||||
const reason = t('This feature is not enabled on your Sentry installation.');
|
||||
const reason = t('This feature is not enabled on your Sentinel installation.');
|
||||
const createClickHandler = (feature: string, featureName: string) => () => {
|
||||
openModal(deps => (
|
||||
<FeatureDisabledModal {...deps} features={[feature]} featureName={featureName} />
|
||||
@@ -420,7 +420,7 @@ export function ProductSelection({
|
||||
</Products>
|
||||
{showPackageManagerInfo && lazyLoader && (
|
||||
<AlternativeInstallationAlert type="info" showIcon>
|
||||
{tct('Prefer to set up Sentry using [npm:npm] or [yarn:yarn]? [goHere].', {
|
||||
{tct('Prefer to set up Sentinel using [npm:npm] or [yarn:yarn]? [goHere].', {
|
||||
npm: <strong />,
|
||||
yarn: <strong />,
|
||||
goHere: (
|
||||
|
||||
@@ -18,10 +18,10 @@ function ProgressHeader({allTasks, completedTasks}: Props) {
|
||||
let title: string, description: string;
|
||||
if (isDemoWalkthrough()) {
|
||||
title = t('Guided Tours');
|
||||
description = t('Take a guided tour to see what Sentry can do for you');
|
||||
description = t('Take a guided tour to see what Sentinel can do for you');
|
||||
} else {
|
||||
title = t('Quick Start');
|
||||
description = t('Walk through this guide to get the most out of Sentry right away.');
|
||||
description = t('Walk through this guide to get the most out of Sentinel right away.');
|
||||
}
|
||||
|
||||
const filteredTasks = allTasks.filter(task => !task.renderCard);
|
||||
|
||||
@@ -59,7 +59,7 @@ Heading.defaultProps = {
|
||||
transition: testableTransition(),
|
||||
};
|
||||
|
||||
const completeNowText = isDemoWalkthrough() ? t('Sentry Basics') : t('Next Steps');
|
||||
const completeNowText = isDemoWalkthrough() ? t('Sentinel Basics') : t('Next Steps');
|
||||
|
||||
const customizedTasksHeading = <Heading key="customized">{t('The Basics')}</Heading>;
|
||||
const completeNowHeading = <Heading key="now">{completeNowText}</Heading>;
|
||||
|
||||
@@ -53,8 +53,8 @@ export default SkipConfirm;
|
||||
const SkipHelp = HookOrDefault({
|
||||
hookName: 'onboarding-wizard:skip-help',
|
||||
defaultComponent: () => (
|
||||
<Button priority="primary" size="xs" to="https://forum.sentry.io/" external>
|
||||
{t('Community Forum')}
|
||||
<Button priority="primary" size="xs" to="https://hanzo.ai/support" external>
|
||||
{t('Support')}
|
||||
</Button>
|
||||
),
|
||||
});
|
||||
|
||||
@@ -210,7 +210,7 @@ export function getOnboardingTasks({
|
||||
task: OnboardingTaskKey.FIRST_INTEGRATION,
|
||||
title: t('Install any of our 40+ integrations'),
|
||||
description: t(
|
||||
'Get alerted in Slack. Two-way sync issues between Sentry and Jira. Notify Sentry of releases from GitHub, Vercel, or Netlify.'
|
||||
'Get alerted in Slack. Two-way sync issues between Sentinel and Jira. Notify Sentinel of releases from GitHub, Vercel, or Netlify.'
|
||||
),
|
||||
skippable: true,
|
||||
requisites: [OnboardingTaskKey.FIRST_PROJECT, OnboardingTaskKey.FIRST_EVENT],
|
||||
@@ -373,7 +373,7 @@ export function getOnboardingTasks({
|
||||
{
|
||||
task: OnboardingTaskKey.ISSUE_TRACKER,
|
||||
title: t('Set up issue tracking'),
|
||||
description: t('Link to Sentry issues within your issue tracker'),
|
||||
description: t('Link to Sentinel issues within your issue tracker'),
|
||||
skippable: true,
|
||||
requisites: [OnboardingTaskKey.FIRST_PROJECT, OnboardingTaskKey.FIRST_EVENT],
|
||||
actionType: 'app',
|
||||
|
||||
@@ -18,7 +18,7 @@ export function DesyncedFilterMessage() {
|
||||
<DesyncedFilterMessageWrap>
|
||||
<strong>{t('Filters Updated')}</strong>
|
||||
{t(
|
||||
'Looks like you opened Sentry through a shared link. Your filters have been updated with new values encoded in the link.'
|
||||
'Looks like you opened Sentinel through a shared link. Your filters have been updated with new values encoded in the link.'
|
||||
)}
|
||||
<DesyncedFilterMessageFooter>
|
||||
<Button
|
||||
|
||||
@@ -39,7 +39,7 @@ function PageFilterPinButton({organization, filter, size, className}: Props) {
|
||||
pinned={pinned}
|
||||
borderless={size === 'zero'}
|
||||
icon={<IconLock isSolid={pinned} size="xs" />}
|
||||
title={t("Once locked, Sentry will remember this filter's value across pages.")}
|
||||
title={t("Once locked, Sentinel will remember this filter's value across pages.")}
|
||||
tooltipProps={{delay: 500}}
|
||||
>
|
||||
{pinned ? t('Locked') : t('Lock')}
|
||||
|
||||
@@ -225,7 +225,7 @@ function OnboardingContent({currentProject}: {currentProject: Project}) {
|
||||
<Fragment>
|
||||
<div>
|
||||
{tct(
|
||||
'Fiddlesticks. This checklist isn’t available for your [project] project yet, but for now, go to Sentry docs for installation details.',
|
||||
'Fiddlesticks. This checklist isn’t available for your [project] project yet, but for now, go to Sentinel docs for installation details.',
|
||||
{project: currentProject.slug}
|
||||
)}
|
||||
</div>
|
||||
|
||||
@@ -271,7 +271,7 @@ function OnboardingContent({
|
||||
<ContentContainer>
|
||||
<p>
|
||||
{tct(
|
||||
'Fiddlesticks. This checklist isn’t available for your [project] project yet, but for now, go to Sentry docs for installation details.',
|
||||
'Fiddlesticks. This checklist isn’t available for your [project] project yet, but for now, go to Sentinel docs for installation details.',
|
||||
{project: currentProject.slug}
|
||||
)}
|
||||
</p>
|
||||
|
||||
@@ -88,7 +88,7 @@ export default function ReplayComparisonModal({
|
||||
{leftBody && rightBody && leftBody === rightBody && (
|
||||
<Alert type="warning" showIcon>
|
||||
{t(
|
||||
"Sentry wasn't able to identify the correct event to display a diff for this hydration error."
|
||||
"Sentinel wasn't able to identify the correct event to display a diff for this hydration error."
|
||||
)}
|
||||
</Alert>
|
||||
)}
|
||||
|
||||
@@ -354,7 +354,7 @@ function OnboardingContent({currentProject}: {currentProject: Project}) {
|
||||
<Fragment>
|
||||
<div>
|
||||
{tct(
|
||||
'Fiddlesticks. This checklist isn’t available for your [project] project yet, but for now, go to Sentry docs for installation details.',
|
||||
'Fiddlesticks. This checklist isn’t available for your [project] project yet, but for now, go to Sentinel docs for installation details.',
|
||||
{project: currentProject.slug}
|
||||
)}
|
||||
</div>
|
||||
|
||||
@@ -5,24 +5,24 @@ import SentryDocumentTitle from './sentryDocumentTitle';
|
||||
describe('SentryDocumentTitle', () => {
|
||||
it('sets the docuemnt title', () => {
|
||||
render(<SentryDocumentTitle title="This is a test" />);
|
||||
expect(document.title).toBe('This is a test — Sentry');
|
||||
expect(document.title).toBe('This is a test — Sentinel');
|
||||
});
|
||||
|
||||
it('adds a organization slug', () => {
|
||||
render(<SentryDocumentTitle orgSlug="org" title="This is a test" />);
|
||||
expect(document.title).toBe('This is a test — org — Sentry');
|
||||
expect(document.title).toBe('This is a test — org — Sentinel');
|
||||
});
|
||||
|
||||
it('adds a project slug', () => {
|
||||
render(<SentryDocumentTitle projectSlug="project" title="This is a test" />);
|
||||
expect(document.title).toBe('This is a test — project — Sentry');
|
||||
expect(document.title).toBe('This is a test — project — Sentinel');
|
||||
});
|
||||
|
||||
it('adds a organization and project slug', () => {
|
||||
render(
|
||||
<SentryDocumentTitle orgSlug="org" projectSlug="project" title="This is a test" />
|
||||
);
|
||||
expect(document.title).toBe('This is a test — org — project — Sentry');
|
||||
expect(document.title).toBe('This is a test — org — project — Sentinel');
|
||||
});
|
||||
|
||||
it('sets the title without suffix', () => {
|
||||
@@ -37,12 +37,12 @@ describe('SentryDocumentTitle', () => {
|
||||
</SentryDocumentTitle>
|
||||
);
|
||||
|
||||
expect(document.title).toBe('child title — Sentry');
|
||||
expect(document.title).toBe('child title — Sentinel');
|
||||
|
||||
rerender(
|
||||
<SentryDocumentTitle title="This is a test">new Content</SentryDocumentTitle>
|
||||
);
|
||||
|
||||
expect(document.title).toBe('This is a test — Sentry');
|
||||
expect(document.title).toBe('This is a test — Sentinel');
|
||||
});
|
||||
});
|
||||
|
||||
@@ -3,7 +3,7 @@ import {createContext, useContext, useEffect, useMemo} from 'react';
|
||||
type Props = {
|
||||
children?: React.ReactNode;
|
||||
/**
|
||||
* Should the ` - Sentry` suffix be excluded?
|
||||
* Should the ` - Sentinel` suffix be excluded?
|
||||
*/
|
||||
noSuffix?: boolean;
|
||||
/**
|
||||
@@ -21,7 +21,7 @@ type Props = {
|
||||
title?: string;
|
||||
};
|
||||
|
||||
const DEFAULT_PAGE_TITLE = 'Sentry';
|
||||
const DEFAULT_PAGE_TITLE = 'Sentinel';
|
||||
|
||||
const DocumentTitleContext = createContext(DEFAULT_PAGE_TITLE);
|
||||
|
||||
@@ -60,7 +60,7 @@ function SentryDocumentTitle({
|
||||
}
|
||||
|
||||
if (pageTitle !== '') {
|
||||
return `${pageTitle} — Sentry`;
|
||||
return `${pageTitle} — Sentinel`;
|
||||
}
|
||||
|
||||
return DEFAULT_PAGE_TITLE;
|
||||
|
||||
@@ -128,8 +128,8 @@ function BroadcastSdkUpdates({projects, sdkUpdates, organization}: Props) {
|
||||
`[first-sentence]. Any SDK that has the package name ‘raven’ may be missing data. Migrate to the latest SDK version.`,
|
||||
{
|
||||
['first-sentence']: tn(
|
||||
'You have %s project using a deprecated version of the Sentry client',
|
||||
'You have %s projects using a deprecated version of the Sentry client',
|
||||
'You have %s project using a deprecated version of the Sentinel client',
|
||||
'You have %s projects using a deprecated version of the Sentinel client',
|
||||
deprecatedRavenSdkUpdates.length
|
||||
),
|
||||
}
|
||||
|
||||
@@ -139,14 +139,14 @@ class Broadcasts extends Component<Props, State> {
|
||||
data-test-id="sidebar-broadcasts-panel"
|
||||
orientation={orientation}
|
||||
collapsed={collapsed}
|
||||
title={t("What's new in Sentry")}
|
||||
title={t("What's new in Sentinel")}
|
||||
hidePanel={hidePanel}
|
||||
>
|
||||
{loading ? (
|
||||
<LoadingIndicator />
|
||||
) : broadcasts.length === 0 ? (
|
||||
<SidebarPanelEmpty>
|
||||
{t('No recent updates from the Sentry team.')}
|
||||
{t('No recent updates from the Sentinel team.')}
|
||||
</SidebarPanelEmpty>
|
||||
) : (
|
||||
broadcasts.map(item => (
|
||||
|
||||
@@ -132,12 +132,12 @@ describe('Sidebar', function () {
|
||||
|
||||
await userEvent.click(await screen.findByText("What's new"));
|
||||
expect(await screen.findByRole('dialog')).toBeInTheDocument();
|
||||
expect(screen.getByText("What's new in Sentry")).toBeInTheDocument();
|
||||
expect(screen.getByText("What's new in Sentinel")).toBeInTheDocument();
|
||||
|
||||
const oldPath = routerContext.context.location.pathname;
|
||||
routerContext.context.location.pathname = '/other/path';
|
||||
rerender(getElement());
|
||||
expect(screen.queryByText("What's new in Sentry")).not.toBeInTheDocument();
|
||||
expect(screen.queryByText("What's new in Sentinel")).not.toBeInTheDocument();
|
||||
routerContext.context.location.pathname = oldPath;
|
||||
});
|
||||
|
||||
@@ -169,14 +169,14 @@ describe('Sidebar', function () {
|
||||
await userEvent.click(await screen.findByText("What's new"));
|
||||
|
||||
expect(await screen.findByRole('dialog')).toBeInTheDocument();
|
||||
expect(screen.getByText("What's new in Sentry")).toBeInTheDocument();
|
||||
expect(screen.getByText("What's new in Sentinel")).toBeInTheDocument();
|
||||
expect(
|
||||
screen.getByText('No recent updates from the Sentry team.')
|
||||
screen.getByText('No recent updates from the Sentinel team.')
|
||||
).toBeInTheDocument();
|
||||
|
||||
// Close the sidebar
|
||||
await userEvent.click(screen.getByText("What's new"));
|
||||
expect(screen.queryByText("What's new in Sentry")).not.toBeInTheDocument();
|
||||
expect(screen.queryByText("What's new in Sentinel")).not.toBeInTheDocument();
|
||||
await tick();
|
||||
});
|
||||
|
||||
@@ -189,7 +189,7 @@ describe('Sidebar', function () {
|
||||
await userEvent.click(await screen.findByText("What's new"), {delay: null});
|
||||
|
||||
expect(await screen.findByRole('dialog')).toBeInTheDocument();
|
||||
expect(screen.getByText("What's new in Sentry")).toBeInTheDocument();
|
||||
expect(screen.getByText("What's new in Sentinel")).toBeInTheDocument();
|
||||
|
||||
const broadcastTitle = screen.getByText(broadcast.title);
|
||||
expect(broadcastTitle).toBeInTheDocument();
|
||||
@@ -208,7 +208,7 @@ describe('Sidebar', function () {
|
||||
|
||||
// Close the sidebar
|
||||
await userEvent.click(screen.getByText("What's new"));
|
||||
expect(screen.queryByText("What's new in Sentry")).not.toBeInTheDocument();
|
||||
expect(screen.queryByText("What's new in Sentinel")).not.toBeInTheDocument();
|
||||
await tick();
|
||||
});
|
||||
|
||||
@@ -220,7 +220,7 @@ describe('Sidebar', function () {
|
||||
await userEvent.click(await screen.findByRole('link', {name: "What's new"}), {
|
||||
delay: null,
|
||||
});
|
||||
expect(await screen.findByText("What's new in Sentry")).toBeInTheDocument();
|
||||
expect(await screen.findByText("What's new in Sentinel")).toBeInTheDocument();
|
||||
|
||||
act(() => jest.advanceTimersByTime(500));
|
||||
|
||||
|
||||
@@ -295,10 +295,10 @@ class U2fInterface extends Component<Props, State> {
|
||||
{
|
||||
UNKNOWN_ERROR: t('There was an unknown problem, please try again'),
|
||||
DEVICE_ERROR: t('Your U2F device reported an error.'),
|
||||
DUPLICATE_DEVICE: t('This device is already registered with Sentry.'),
|
||||
DUPLICATE_DEVICE: t('This device is already registered with Sentinel.'),
|
||||
UNKNOWN_DEVICE: t('The device you used for sign-in is unknown.'),
|
||||
BAD_APPID: tct(
|
||||
`[p1:The Sentry server administrator modified the device
|
||||
`[p1:The Sentinel server administrator modified the device
|
||||
registrations.] [p2:You need to remove and re-add the device to continue using
|
||||
your U2F device. Use a different sign-in method or contact [support] for
|
||||
assistance.]`,
|
||||
|
||||
@@ -9,7 +9,7 @@ export const fields: {[key: string]: Field} = {
|
||||
name: 'personalActivityNotifications',
|
||||
type: 'boolean',
|
||||
label: t('Notify Me About My Own Activity'),
|
||||
help: t('Enable this to receive notifications about your own actions on Sentry.'),
|
||||
help: t('Enable this to receive notifications about your own actions on Sentinel.'),
|
||||
},
|
||||
selfAssignOnResolve: {
|
||||
name: 'selfAssignOnResolve',
|
||||
|
||||
@@ -74,11 +74,11 @@ const formGroups: JsonFormObject[] = [
|
||||
type: 'boolean',
|
||||
confirm: {
|
||||
false: t(
|
||||
"Are you sure you want to disable sourcecode fetching for JavaScript events? This will affect Sentry's ability to aggregate issues if you're not already uploading sourcemaps as artifacts."
|
||||
"Are you sure you want to disable sourcecode fetching for JavaScript events? This will affect Sentinel's ability to aggregate issues if you're not already uploading sourcemaps as artifacts."
|
||||
),
|
||||
},
|
||||
label: t('Allow JavaScript Source Fetching'),
|
||||
help: t('Allow Sentry to scrape missing JavaScript source context when possible'),
|
||||
help: t('Allow Sentinel to scrape missing JavaScript source context when possible'),
|
||||
},
|
||||
{
|
||||
name: 'storeCrashReports',
|
||||
|
||||
@@ -153,7 +153,7 @@ export const fields: Record<string, Field> = {
|
||||
// `props` are the props given to FormField
|
||||
setValue: (val, props) => props.organization?.[props.name] && val,
|
||||
label: t('Enable JavaScript source fetching'),
|
||||
help: t('Allow Sentry to scrape missing JavaScript source context when possible'),
|
||||
help: t('Allow Sentinel to scrape missing JavaScript source context when possible'),
|
||||
},
|
||||
securityToken: {
|
||||
name: 'securityToken',
|
||||
|
||||
@@ -40,7 +40,7 @@ const getPublicFormFields = (): Field[] => [
|
||||
type: 'string',
|
||||
label: 'Redirect URL',
|
||||
placeholder: 'e.g. https://example.com/sentry/setup/',
|
||||
help: 'The URL Sentry will redirect users to after installation.',
|
||||
help: 'The URL Sentinel will redirect users to after installation.',
|
||||
},
|
||||
{
|
||||
name: 'verifyInstall',
|
||||
@@ -55,7 +55,7 @@ const getPublicFormFields = (): Field[] => [
|
||||
disabled: ({webhookDisabled}) => webhookDisabled,
|
||||
disabledReason: 'Cannot enable alert rule action without a webhook url',
|
||||
help: tct(
|
||||
'If enabled, this integration will be available in Issue Alert rules and Metric Alert rules in Sentry. The notification destination is the Webhook URL specified above. More on actions [learn_more:here].',
|
||||
'If enabled, this integration will be available in Issue Alert rules and Metric Alert rules in Sentinel. The notification destination is the Webhook URL specified above. More on actions [learn_more:here].',
|
||||
{
|
||||
learn_more: (
|
||||
<ExternalLink href="https://docs.sentry.io/product/alerts-notifications/notifications/" />
|
||||
|
||||
@@ -13,9 +13,9 @@ const formGroups: JsonFormObject[] = [
|
||||
type: 'boolean',
|
||||
|
||||
// additional data/props that is related to rendering of form field rather than data
|
||||
label: 'Show Sentry Branding',
|
||||
label: 'Show Sentinel Branding',
|
||||
placeholder: 'e.g. [email protected]',
|
||||
help: 'Show "powered by Sentry within the feedback dialog. We appreciate you helping get the word out about Sentry! <3',
|
||||
help: 'Show "powered by Sentinel within the feedback dialog. We appreciate you helping get the word out about Sentinel! <3',
|
||||
getData: data => ({options: data}),
|
||||
},
|
||||
],
|
||||
|
||||
@@ -188,7 +188,7 @@ class PluginSettings<
|
||||
return (
|
||||
<Alert type="error">
|
||||
{tct('An unknown error occurred. Need help with this? [link:Contact support]', {
|
||||
link: <a href="https://sentry.io/support/" />,
|
||||
link: <a href="https://hanzo.ai/support" />,
|
||||
})}
|
||||
</Alert>
|
||||
);
|
||||
|
||||
@@ -143,7 +143,7 @@ class Settings extends DefaultSettings<Props, State> {
|
||||
return (
|
||||
<div className="alert alert-error m-b-1">
|
||||
An unknown error occurred. Need help with this?{' '}
|
||||
<a href="https://sentry.io/support/">Contact support</a>
|
||||
<a href="https://hanzo.ai/support">Contact support</a>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -49,7 +49,7 @@ class Settings extends DefaultSettings<Props, State> {
|
||||
return (
|
||||
<div className="alert alert-error m-b-1">
|
||||
An unknown error occurred. Need help with this?{' '}
|
||||
<a href="https://sentry.io/support/">Contact support</a>
|
||||
<a href="https://hanzo.ai/support">Contact support</a>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -992,10 +992,10 @@ function buildRoutes() {
|
||||
)
|
||||
)}
|
||||
/>
|
||||
<Route path="sentry-functions/" name={t('Sentry Functions')}>
|
||||
<Route path="sentry-functions/" name={t('Sentinel Functions')}>
|
||||
<Route
|
||||
path="new/"
|
||||
name={t('Create Sentry Function')}
|
||||
name={t('Create Sentinel Function')}
|
||||
component={make(
|
||||
() =>
|
||||
import(
|
||||
@@ -1005,7 +1005,7 @@ function buildRoutes() {
|
||||
/>
|
||||
<Route
|
||||
path=":functionSlug/"
|
||||
name={t('Edit Sentry Function')}
|
||||
name={t('Edit Sentinel Function')}
|
||||
component={make(
|
||||
() =>
|
||||
import(
|
||||
|
||||
@@ -7,7 +7,7 @@ function routeTitleGen(
|
||||
const tmplBase = `${routeName} - ${orgSlug}`;
|
||||
const tmpl = projectSlug ? `${tmplBase} - ${projectSlug}` : tmplBase;
|
||||
|
||||
return withSentry ? `${tmpl} - Sentry` : tmpl;
|
||||
return withSentry ? `${tmpl} - Sentinel` : tmpl;
|
||||
}
|
||||
|
||||
export default routeTitleGen;
|
||||
|
||||
@@ -122,7 +122,7 @@ class AcceptOrganizationInvite extends DeprecatedAsyncView<Props, State> {
|
||||
<p data-test-id="action-info-general">
|
||||
{t(
|
||||
`To continue, you must either create a new account, or login to an
|
||||
existing Sentry account.`
|
||||
existing Sentinel account.`
|
||||
)}
|
||||
</p>
|
||||
)}
|
||||
@@ -292,7 +292,7 @@ class AcceptOrganizationInvite extends DeprecatedAsyncView<Props, State> {
|
||||
</Alert>
|
||||
)}
|
||||
<InviteDescription data-test-id="accept-invite">
|
||||
{tct('[orgSlug] is using Sentry to track and debug errors.', {
|
||||
{tct('[orgSlug] is using Sentinel to track and debug errors.', {
|
||||
orgSlug: <strong>{inviteDetails.orgSlug}</strong>,
|
||||
})}
|
||||
</InviteDescription>
|
||||
|
||||
@@ -14,7 +14,7 @@ function AdminBuffer() {
|
||||
|
||||
<div className="box-content with-padding">
|
||||
<p>
|
||||
Sentry buffers are responsible for making changes to cardinality counters —
|
||||
Sentinel buffers are responsible for making changes to cardinality counters —
|
||||
such as an issues event count — as well as updating attributes like{' '}
|
||||
<em>last seen</em>. These are flushed on a regularly interval, and are
|
||||
directly affected by the queue backlog.
|
||||
|
||||
@@ -46,7 +46,7 @@ export default class AdminEnvironment extends DeprecatedAsyncView<{}, State> {
|
||||
size="xs"
|
||||
external
|
||||
>
|
||||
{t('Upgrade to Sentry %s', version.latest)}
|
||||
{t('Upgrade to Sentinel %s', version.latest)}
|
||||
</Button>
|
||||
)}
|
||||
</VersionLabel>
|
||||
@@ -72,7 +72,7 @@ export default class AdminEnvironment extends DeprecatedAsyncView<{}, State> {
|
||||
</dl>
|
||||
) : (
|
||||
<p>
|
||||
{t('Environment not found (are you using the builtin Sentry webserver?).')}
|
||||
{t('Environment not found (are you using the builtin Sentinel webserver?).')}
|
||||
</p>
|
||||
)}
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ type Props = {
|
||||
|
||||
function AdminLayout({children, ...props}: Props) {
|
||||
return (
|
||||
<SentryDocumentTitle noSuffix title={t('Sentry Admin')}>
|
||||
<SentryDocumentTitle noSuffix title={t('Sentinel Admin')}>
|
||||
<Page>
|
||||
<BreadcrumbProvider>
|
||||
<SettingsLayout renderNavigation={renderAdminNavigation} {...props}>
|
||||
|
||||
@@ -96,7 +96,7 @@ export default class InstallWizard extends DeprecatedAsyncView<
|
||||
}
|
||||
|
||||
getTitle() {
|
||||
return t('Setup Sentry');
|
||||
return t('Setup Sentinel');
|
||||
}
|
||||
|
||||
render() {
|
||||
@@ -107,7 +107,7 @@ export default class InstallWizard extends DeprecatedAsyncView<
|
||||
<Pattern />
|
||||
<SetupWizard>
|
||||
<Heading>
|
||||
<span>{t('Welcome to Sentry')}</span>
|
||||
<span>{t('Welcome to Sentinel')}</span>
|
||||
<Version>{version.current}</Version>
|
||||
</Heading>
|
||||
{this.state.loading
|
||||
@@ -125,7 +125,7 @@ export default class InstallWizard extends DeprecatedAsyncView<
|
||||
return (
|
||||
<Alert type="error" showIcon>
|
||||
{t(
|
||||
'We were unable to load the required configuration from the Sentry server. Please take a look at the service logs.'
|
||||
'We were unable to load the required configuration from the Sentinel server. Please take a look at the service logs.'
|
||||
)}
|
||||
</Alert>
|
||||
);
|
||||
|
||||
@@ -472,14 +472,14 @@ const definitions: Field[] = [
|
||||
key: 'system.url-prefix',
|
||||
label: t('Root URL'),
|
||||
placeholder: 'https://sentry.example.com',
|
||||
help: t('The root web address which is used to communicate with the Sentry backend.'),
|
||||
help: t('The root web address which is used to communicate with the Sentinel backend.'),
|
||||
defaultValue: () => `${document.location.protocol}//${document.location.host}`,
|
||||
},
|
||||
{
|
||||
key: 'system.admin-email',
|
||||
label: t('Admin Email'),
|
||||
placeholder: '[email protected]',
|
||||
help: t('The technical contact for this Sentry installation.'),
|
||||
help: t('The technical contact for this Sentinel installation.'),
|
||||
// TODO(dcramer): this should not be hardcoded to a component
|
||||
component: EmailField,
|
||||
defaultValue: () => ConfigStore.get('user').email,
|
||||
@@ -488,7 +488,7 @@ const definitions: Field[] = [
|
||||
key: 'system.support-email',
|
||||
label: t('Support Email'),
|
||||
placeholder: '[email protected]',
|
||||
help: t('The support contact for this Sentry installation.'),
|
||||
help: t('The support contact for this Sentinel installation.'),
|
||||
// TODO(dcramer): this should not be hardcoded to a component
|
||||
component: EmailField,
|
||||
defaultValue: () => ConfigStore.get('user').email,
|
||||
@@ -497,7 +497,7 @@ const definitions: Field[] = [
|
||||
key: 'system.security-email',
|
||||
label: t('Security Email'),
|
||||
placeholder: '[email protected]',
|
||||
help: t('The security contact for this Sentry installation.'),
|
||||
help: t('The security contact for this Sentinel installation.'),
|
||||
// TODO(dcramer): this should not be hardcoded to a component
|
||||
component: EmailField,
|
||||
defaultValue: () => ConfigStore.get('user').email,
|
||||
@@ -513,7 +513,7 @@ const definitions: Field[] = [
|
||||
{
|
||||
key: 'auth.allow-registration',
|
||||
label: t('Allow Registration'),
|
||||
help: t('Allow anyone to create an account and access this Sentry installation.'),
|
||||
help: t('Allow anyone to create an account and access this Sentinel installation.'),
|
||||
component: BooleanField,
|
||||
defaultValue: () => false,
|
||||
},
|
||||
|
||||
@@ -1204,7 +1204,7 @@ class IssueRuleEditor extends DeprecatedAsyncView<Props, State> {
|
||||
<StepContent>
|
||||
<StepLead>
|
||||
{tct(
|
||||
'[when:When] an event is captured by Sentry and [selector] of the following happens',
|
||||
'[when:When] an event is captured by Sentinel and [selector] of the following happens',
|
||||
{
|
||||
when: <Badge />,
|
||||
selector: (
|
||||
|
||||
@@ -153,14 +153,14 @@ class TicketRuleModal extends AbstractExternalIssueForm<Props, State> {
|
||||
name: 'title',
|
||||
label: 'Title',
|
||||
type: 'string',
|
||||
default: 'This will be the same as the Sentry Issue.',
|
||||
default: 'This will be the same as the Sentinel Issue.',
|
||||
disabled: true,
|
||||
} as IssueConfigField,
|
||||
{
|
||||
name: 'description',
|
||||
label: 'Description',
|
||||
type: 'string',
|
||||
default: 'This will be generated from the Sentry Issue details.',
|
||||
default: 'This will be generated from the Sentinel Issue details.',
|
||||
disabled: true,
|
||||
} as IssueConfigField,
|
||||
];
|
||||
@@ -226,7 +226,7 @@ class TicketRuleModal extends AbstractExternalIssueForm<Props, State> {
|
||||
let body: React.ReactNode;
|
||||
if (link) {
|
||||
body = tct(
|
||||
'When this alert is triggered [ticketType] will be created with the following fields. It will also [linkToDocs:stay in sync] with the new Sentry Issue.',
|
||||
'When this alert is triggered [ticketType] will be created with the following fields. It will also [linkToDocs:stay in sync] with the new Sentinel Issue.',
|
||||
{
|
||||
linkToDocs: <ExternalLink href={link} />,
|
||||
ticketType,
|
||||
|
||||
@@ -88,7 +88,7 @@ export const AlertWizardPanelContent: Record<AlertType, PanelContent> = {
|
||||
},
|
||||
failure_rate: {
|
||||
description: t(
|
||||
'Failure rate is the percentage of unsuccessful transactions. Sentry treats transactions with a status other than “ok,” “canceled,” and “unknown” as failures.'
|
||||
'Failure rate is the percentage of unsuccessful transactions. Sentinel treats transactions with a status other than “ok,” “canceled,” and “unknown” as failures.'
|
||||
),
|
||||
examples: [t('When the failure rate for an important endpoint reaches 10%.')],
|
||||
docsLink: 'https://docs.sentry.io/product/performance/metrics/#failure-rate',
|
||||
|
||||
@@ -35,7 +35,7 @@ function RegisterForm({authConfig}: Props) {
|
||||
setError(response.responseJSON.detail);
|
||||
}}
|
||||
extraButton={
|
||||
<PrivacyPolicyLink href="https://sentry.io/privacy/">
|
||||
<PrivacyPolicyLink href="https://hanzo.ai/privacy">
|
||||
{t('Privacy Policy')}
|
||||
</PrivacyPolicyLink>
|
||||
}
|
||||
@@ -78,7 +78,7 @@ function RegisterForm({authConfig}: Props) {
|
||||
updates focus on relevant information, and we'll never sell your data
|
||||
to third parties. See our [link] for more details.`,
|
||||
{
|
||||
link: <a href="https://sentry.io/privacy/">Privacy Policy</a>,
|
||||
link: <a href="https://hanzo.ai/privacy">Privacy Policy</a>,
|
||||
}
|
||||
)}
|
||||
stacked
|
||||
|
||||
@@ -174,7 +174,7 @@ function OnboardingContent({
|
||||
<FallbackContentWrapper>
|
||||
<div>
|
||||
{tct(
|
||||
'Fiddlesticks. This checklist isn’t available for your [project] project yet, but for now, go to Sentry docs for installation details.',
|
||||
'Fiddlesticks. This checklist isn’t available for your [project] project yet, but for now, go to Sentinel docs for installation details.',
|
||||
{project: currentProject.slug}
|
||||
)}
|
||||
</div>
|
||||
|
||||
@@ -90,7 +90,7 @@ export const DDMLayout = memo(() => {
|
||||
<h3>{t('Get started with custom metrics')}</h3>
|
||||
<p>
|
||||
{t(
|
||||
"Send your own metrics to Sentry to track your system's behaviour and profit from the same powerful features as you do with errors, like alerting and dashboards."
|
||||
"Send your own metrics to Sentinel to track your system's behaviour and profit from the same powerful features as you do with errors, like alerting and dashboards."
|
||||
)}
|
||||
</p>
|
||||
<Button
|
||||
|
||||
@@ -92,7 +92,7 @@ export function MetricDetails({widget, onRowHover, focusArea}: MetricDetailsProp
|
||||
>
|
||||
<Tooltip
|
||||
title={t(
|
||||
'This metric is automatically collected by Sentry. It is not bound to a specific line of your code.'
|
||||
'This metric is automatically collected by Sentinel. It is not bound to a specific line of your code.'
|
||||
)}
|
||||
disabled={!isCodeLocationsDisabled}
|
||||
>
|
||||
|
||||
@@ -331,7 +331,7 @@ export default class IntegrationOrganizationLink extends DeprecatedAsyncView<
|
||||
const target_url = `https://github.com/${installationData?.account.login}`;
|
||||
|
||||
const alertText = tct(
|
||||
`GitHub user [sender_login] has installed GitHub app to [account_type] [account_login]. Proceed if you want to attach this installation to your Sentry account.`,
|
||||
`GitHub user [sender_login] has installed GitHub app to [account_type] [account_login]. Proceed if you want to attach this installation to your Sentinel account.`,
|
||||
{
|
||||
account_type: <strong>{installationData?.account.type}</strong>,
|
||||
account_login: (
|
||||
|
||||
@@ -110,7 +110,7 @@ export default class AwsLambdaFunctionSelect extends Component<Props, State> {
|
||||
return (
|
||||
<LoadingWrapper>
|
||||
<StyledLoadingIndicator />
|
||||
<h4>{t('Adding Sentry to %s functions', count)}</h4>
|
||||
<h4>{t('Adding Sentinel to %s functions', count)}</h4>
|
||||
{text}
|
||||
</LoadingWrapper>
|
||||
);
|
||||
@@ -156,7 +156,7 @@ export default class AwsLambdaFunctionSelect extends Component<Props, State> {
|
||||
<List symbol="colored-numeric" initialCounterValue={initialStepNumber}>
|
||||
<ListItem>
|
||||
<Header>{this.renderWhatWeFound()}</Header>
|
||||
{t('Decide which functions you would like to enable for Sentry monitoring')}
|
||||
{t('Decide which functions you would like to enable for Sentinel monitoring')}
|
||||
<StyledForm
|
||||
initialData={this.initialData}
|
||||
model={this.model}
|
||||
|
||||
@@ -52,7 +52,7 @@ function ActivitySection(props: Props) {
|
||||
</ActivityItem>
|
||||
|
||||
{group.activity.map(item => {
|
||||
const authorName = item.user ? item.user.name : 'Sentry';
|
||||
const authorName = item.user ? item.user.name : 'Sentinel';
|
||||
|
||||
if (item.type === GroupActivityType.NOTE) {
|
||||
return (
|
||||
|
||||
@@ -432,10 +432,10 @@ describe('GroupActivity', function () {
|
||||
organization: OrganizationFixture({}),
|
||||
});
|
||||
expect(screen.getAllByTestId('activity-item').at(-1)).toHaveTextContent(
|
||||
'Sentry flagged this issue as escalating because over 400 events happened in an hour'
|
||||
'Sentinel flagged this issue as escalating because over 400 events happened in an hour'
|
||||
);
|
||||
expect(screen.getAllByTestId('activity-item').at(-2)).toHaveTextContent(
|
||||
'Sentry flagged this issue as escalating because over 200 events happened in an hour'
|
||||
'Sentinel flagged this issue as escalating because over 200 events happened in an hour'
|
||||
);
|
||||
});
|
||||
|
||||
@@ -456,7 +456,7 @@ describe('GroupActivity', function () {
|
||||
organization: OrganizationFixture({}),
|
||||
});
|
||||
expect(screen.getAllByTestId('activity-item').at(-1)).toHaveTextContent(
|
||||
'Sentry flagged this issue as escalating because over 1 event happened in an hour'
|
||||
'Sentinel flagged this issue as escalating because over 1 event happened in an hour'
|
||||
);
|
||||
});
|
||||
|
||||
@@ -478,7 +478,7 @@ describe('GroupActivity', function () {
|
||||
],
|
||||
});
|
||||
expect(screen.getAllByTestId('activity-item').at(-1)).toHaveTextContent(
|
||||
'Sentry marked this issue as unresolved via Jira'
|
||||
'Sentinel marked this issue as unresolved via Jira'
|
||||
);
|
||||
});
|
||||
|
||||
@@ -500,7 +500,7 @@ describe('GroupActivity', function () {
|
||||
],
|
||||
});
|
||||
expect(screen.getAllByTestId('activity-item').at(-1)).toHaveTextContent(
|
||||
'Sentry marked this issue as resolved via Jira'
|
||||
'Sentinel marked this issue as resolved via Jira'
|
||||
);
|
||||
});
|
||||
|
||||
@@ -525,7 +525,7 @@ describe('GroupActivity', function () {
|
||||
],
|
||||
});
|
||||
expect(screen.getAllByTestId('activity-item').at(-1)).toHaveTextContent(
|
||||
'Sentry flagged this issue as escalating because 400 events happened in 1 minute'
|
||||
'Sentinel flagged this issue as escalating because 400 events happened in 1 minute'
|
||||
);
|
||||
});
|
||||
|
||||
@@ -550,7 +550,7 @@ describe('GroupActivity', function () {
|
||||
],
|
||||
});
|
||||
expect(screen.getAllByTestId('activity-item').at(-1)).toHaveTextContent(
|
||||
'Sentry flagged this issue as escalating because 1 user was affected in 1 minute'
|
||||
'Sentinel flagged this issue as escalating because 1 user was affected in 1 minute'
|
||||
);
|
||||
});
|
||||
|
||||
@@ -576,7 +576,7 @@ describe('GroupActivity', function () {
|
||||
],
|
||||
});
|
||||
expect(screen.getAllByTestId('activity-item').at(-1)).toHaveTextContent(
|
||||
'Sentry flagged this issue as escalating because Oct 30, 2018 12:00 AM passed'
|
||||
'Sentinel flagged this issue as escalating because Oct 30, 2018 12:00 AM passed'
|
||||
);
|
||||
});
|
||||
|
||||
@@ -653,7 +653,7 @@ describe('GroupActivity', function () {
|
||||
],
|
||||
});
|
||||
expect(screen.getAllByTestId('activity-item').at(-1)).toHaveTextContent(
|
||||
'Sentry marked this issue as a regression'
|
||||
'Sentinel marked this issue as a regression'
|
||||
);
|
||||
});
|
||||
it('renders regression with version', function () {
|
||||
@@ -671,7 +671,7 @@ describe('GroupActivity', function () {
|
||||
],
|
||||
});
|
||||
expect(screen.getAllByTestId('activity-item').at(-1)).toHaveTextContent(
|
||||
'Sentry marked this issue as a regression in 1.0.0'
|
||||
'Sentinel marked this issue as a regression in 1.0.0'
|
||||
);
|
||||
});
|
||||
it('renders regression with semver description', function () {
|
||||
@@ -692,7 +692,7 @@ describe('GroupActivity', function () {
|
||||
});
|
||||
const activity = screen.getAllByTestId('activity-item').at(-1);
|
||||
expect(activity).toHaveTextContent(
|
||||
'Sentry marked this issue as a regression in 2.0.0'
|
||||
'Sentinel marked this issue as a regression in 2.0.0'
|
||||
);
|
||||
expect(activity).toHaveTextContent(
|
||||
'2.0.0 is greater than or equal to 1.0.0 compared via semver'
|
||||
@@ -716,7 +716,7 @@ describe('GroupActivity', function () {
|
||||
});
|
||||
const activity = screen.getAllByTestId('activity-item').at(-1);
|
||||
expect(activity).toHaveTextContent(
|
||||
'Sentry marked this issue as a regression in abc1'
|
||||
'Sentinel marked this issue as a regression in abc1'
|
||||
);
|
||||
expect(activity).toHaveTextContent(
|
||||
'abc1 is greater than or equal to abc2 compared via release date'
|
||||
@@ -740,7 +740,7 @@ describe('GroupActivity', function () {
|
||||
organization: OrganizationFixture({features: ['issue-priority-ui']}),
|
||||
});
|
||||
expect(screen.getAllByTestId('activity-item').at(-1)).toHaveTextContent(
|
||||
'Sentry updated the priority value of this issue to be high after it escalated'
|
||||
'Sentinel updated the priority value of this issue to be high after it escalated'
|
||||
);
|
||||
});
|
||||
it('renders a set priority activity for ongoing issues', function () {
|
||||
@@ -760,7 +760,7 @@ describe('GroupActivity', function () {
|
||||
organization: OrganizationFixture({features: ['issue-priority-ui']}),
|
||||
});
|
||||
expect(screen.getAllByTestId('activity-item').at(-1)).toHaveTextContent(
|
||||
'Sentry updated the priority value of this issue to be low after it was marked as ongoing'
|
||||
'Sentinel updated the priority value of this issue to be low after it was marked as ongoing'
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -22,7 +22,7 @@ import GroupDetails from 'sentry/views/issueDetails/groupDetails';
|
||||
jest.unmock('sentry/utils/recreateRoute');
|
||||
|
||||
const SAMPLE_EVENT_ALERT_TEXT =
|
||||
'You are viewing a sample error. Configure Sentry to start viewing real errors.';
|
||||
'You are viewing a sample error. Configure Sentinel to start viewing real errors.';
|
||||
|
||||
describe('groupDetails', () => {
|
||||
const group = GroupFixture({issueCategory: IssueCategory.ERROR});
|
||||
|
||||
@@ -867,7 +867,7 @@ function GroupDetails(props: GroupDetailsProps) {
|
||||
const isSampleError = data?.some(tag => tag.key === 'sample_event') ?? false;
|
||||
|
||||
const getGroupDetailsTitle = () => {
|
||||
const defaultTitle = 'Sentry';
|
||||
const defaultTitle = 'Sentinel';
|
||||
|
||||
if (!group) {
|
||||
return defaultTitle;
|
||||
|
||||
@@ -20,7 +20,7 @@ function SampleEventAlert({
|
||||
<IconLightning />
|
||||
<TextWrapper>
|
||||
{t(
|
||||
'You are viewing a sample error. Configure Sentry to start viewing real errors.'
|
||||
'You are viewing a sample error. Configure Sentinel to start viewing real errors.'
|
||||
)}
|
||||
</TextWrapper>
|
||||
<Button
|
||||
|
||||
@@ -45,7 +45,7 @@ function NewsletterConsent({onSubmitSuccess}: Props) {
|
||||
focus on relevant information, and we'll never sell your data to third
|
||||
parties. See our [link:Privacy Policy] for more details.
|
||||
`,
|
||||
{link: <ExternalLink href="https://sentry.io/privacy/" />}
|
||||
{link: <ExternalLink href="https://hanzo.ai/privacy" />}
|
||||
)}
|
||||
/>
|
||||
</ApiForm>
|
||||
|
||||
@@ -9,7 +9,7 @@ export default function AddInstallationInstructions() {
|
||||
<Fragment>
|
||||
<p>
|
||||
{tct(
|
||||
'The automated AWS Lambda setup will instrument your Lambda functions with Sentry error and performance monitoring without any code changes. We use CloudFormation Stack ([learnMore]) to create the Sentry role which gives us access to your AWS account.',
|
||||
'The automated AWS Lambda setup will instrument your Lambda functions with Sentinel error and performance monitoring without any code changes. We use CloudFormation Stack ([learnMore]) to create the Sentry role which gives us access to your AWS account.',
|
||||
{
|
||||
learnMore: (
|
||||
<ExternalLink href="https://aws.amazon.com/cloudformation/">
|
||||
|
||||
@@ -21,7 +21,7 @@ export default function PostInstallCodeSnippet({
|
||||
<div>
|
||||
<p>
|
||||
{t(
|
||||
"Congrats, you just installed the %s integration! Now that it's is installed, the next time you trigger an error it will go to your Sentry.",
|
||||
"Congrats, you just installed the %s integration! Now that it's is installed, the next time you trigger an error it will go to your Sentinel.",
|
||||
provider.name
|
||||
)}
|
||||
</p>
|
||||
@@ -42,7 +42,7 @@ export default function PostInstallCodeSnippet({
|
||||
<Fragment>
|
||||
<p>
|
||||
{t(
|
||||
"If you're new to Sentry, use the email alert to access your account and complete a product tour."
|
||||
"If you're new to Sentinel, use the email alert to access your account and complete a product tour."
|
||||
)}
|
||||
</p>
|
||||
<p>
|
||||
|
||||
@@ -89,7 +89,7 @@ function TargetedOnboardingWelcome(props: StepProps) {
|
||||
<Wrapper>
|
||||
<WelcomeBackground />
|
||||
<motion.h1 {...fadeAway} style={{marginBottom: space(0.5)}}>
|
||||
{t('Welcome to Sentry')}
|
||||
{t('Welcome to Sentinel')}
|
||||
</motion.h1>
|
||||
<SubHeaderText style={{marginBottom: space(4)}} {...fadeAway}>
|
||||
{t(
|
||||
@@ -98,7 +98,7 @@ function TargetedOnboardingWelcome(props: StepProps) {
|
||||
</SubHeaderText>
|
||||
<ActionItem {...fadeAway}>
|
||||
<InnerAction
|
||||
title={t('Install Sentry')}
|
||||
title={t('Install Sentinel')}
|
||||
subText={t(
|
||||
'Select your languages or frameworks and install the SDKs to start tracking issues'
|
||||
)}
|
||||
@@ -136,7 +136,7 @@ function TargetedOnboardingWelcome(props: StepProps) {
|
||||
/>
|
||||
</ActionItem>
|
||||
<motion.p style={{margin: 0}} {...fadeAway}>
|
||||
{t("Gee, I've used Sentry before.")}
|
||||
{t("Gee, I've used Sentinel before.")}
|
||||
<br />
|
||||
<Link
|
||||
onClick={handleSkipOnboarding}
|
||||
|
||||
@@ -352,7 +352,7 @@ class ActivityItem extends Component<Props, State> {
|
||||
/>
|
||||
);
|
||||
const author = {
|
||||
name: item.user ? item.user.name : 'Sentry',
|
||||
name: item.user ? item.user.name : 'Sentinel',
|
||||
avatar,
|
||||
};
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ function DeletionInProgress({organization}: OrganizationProps) {
|
||||
<Layout.Main>
|
||||
<Alert type="warning" showIcon>
|
||||
{tct(
|
||||
'The [organization] organization is currently in the process of being deleted from Sentry.',
|
||||
'The [organization] organization is currently in the process of being deleted from Sentinel.',
|
||||
{
|
||||
organization: <strong>{organization.slug}</strong>,
|
||||
}
|
||||
|
||||
@@ -106,7 +106,7 @@ describe('OrganizationLayout', function () {
|
||||
);
|
||||
|
||||
const inProgress = await screen.findByText(
|
||||
'currently in the process of being deleted from Sentry.',
|
||||
'currently in the process of being deleted from Sentinel.',
|
||||
{exact: false}
|
||||
);
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ function OrganizationLayout({children}: Props) {
|
||||
const organization = useOrganization({allowNull: true});
|
||||
|
||||
return (
|
||||
<SentryDocumentTitle noSuffix title={organization?.name ?? 'Sentry'}>
|
||||
<SentryDocumentTitle noSuffix title={organization?.name ?? 'Sentinel'}>
|
||||
<OrganizationContainer>
|
||||
<div className="app">
|
||||
{organization && <OrganizationHeader organization={organization} />}
|
||||
|
||||
@@ -19,7 +19,7 @@ function StatsHeader({organization, activeTab}: Props) {
|
||||
<PageHeadingQuestionTooltip
|
||||
docsUrl="https://docs.sentry.io/product/stats/"
|
||||
title={t(
|
||||
'A view of the usage data that Sentry has received across your entire organization.'
|
||||
'A view of the usage data that Sentinel has received across your entire organization.'
|
||||
)}
|
||||
/>
|
||||
</Layout.Title>
|
||||
|
||||
@@ -378,7 +378,7 @@ export class OrganizationStats extends Component<OrganizationStatsProps> {
|
||||
<Layout.Title>{t('Organization Usage Stats')}</Layout.Title>
|
||||
<HeadingSubtitle>
|
||||
{tct(
|
||||
'A view of the usage data that Sentry has received across your entire organization. [link: Read the docs].',
|
||||
'A view of the usage data that Sentinel has received across your entire organization. [link: Read the docs].',
|
||||
{
|
||||
link: <ExternalLink href="https://docs.sentry.io/product/stats/" />,
|
||||
}
|
||||
|
||||
@@ -273,7 +273,7 @@ class UsageStatsOrganization<
|
||||
},
|
||||
accepted: {
|
||||
title: tct('Accepted [dataCategory]', {dataCategory: dataCategoryName}),
|
||||
help: tct('Accepted [dataCategory] were successfully processed by Sentry', {
|
||||
help: tct('Accepted [dataCategory] were successfully processed by Sentinel', {
|
||||
dataCategory,
|
||||
}),
|
||||
score: accepted,
|
||||
|
||||
@@ -41,7 +41,7 @@ export function OtherPlatformsInfo({
|
||||
return (
|
||||
<Wrapper>
|
||||
{t(
|
||||
"We cannot provide instructions for '%s' projects. However, please find below the DSN key for this project, which is required to instrument Sentry.",
|
||||
"We cannot provide instructions for '%s' projects. However, please find below the DSN key for this project, which is required to instrument Sentinel.",
|
||||
platform
|
||||
)}
|
||||
<CodeSnippet dark language="properties">
|
||||
|
||||
@@ -137,7 +137,7 @@ class ProjectContext extends Component<Props, State> {
|
||||
}
|
||||
|
||||
getTitle() {
|
||||
return this.state.project?.slug ?? 'Sentry';
|
||||
return this.state.project?.slug ?? 'Sentinel';
|
||||
}
|
||||
|
||||
onProjectChange(projectIds: Set<string>) {
|
||||
|
||||
@@ -22,12 +22,12 @@ function Resources(_props: Props) {
|
||||
<ResourceCard
|
||||
link="https://docs.sentry.io/product/releases/"
|
||||
imgUrl={releasesImg}
|
||||
title={t('The Sentry Workflow')}
|
||||
title={t('The Sentinel Workflow')}
|
||||
/>
|
||||
<ResourceCard
|
||||
link="https://docs.sentry.io/product/issues/"
|
||||
imgUrl={breadcrumbsImg}
|
||||
title={t('Sentry vs Logging')}
|
||||
title={t('Sentinel vs Logging')}
|
||||
/>
|
||||
<ResourceCard link="https://docs.sentry.io/" imgUrl={docsImg} title={t('Docs')} />
|
||||
</ResourceCards>
|
||||
|
||||
@@ -46,7 +46,7 @@ export const RELEASES_TOUR_STEPS: TourStep[] = [
|
||||
body: (
|
||||
<TourText>
|
||||
{t(
|
||||
'Sentry suggests which commit caused an issue and who is likely responsible so you can triage.'
|
||||
'Sentinel suggests which commit caused an issue and who is likely responsible so you can triage.'
|
||||
)}
|
||||
</TourText>
|
||||
),
|
||||
|
||||
@@ -58,7 +58,7 @@ export function PublicKey({publicKey, onComplete}: StepProps) {
|
||||
|
||||
return (
|
||||
<Wrapper data-test-id="public-key">
|
||||
<StepHeading step={2}>{t("Save Sentry's public key to your machine")}</StepHeading>
|
||||
<StepHeading step={2}>{t("Save Sentinel's public key to your machine")}</StepHeading>
|
||||
{publicKey ? loaded : unloaded}
|
||||
</Wrapper>
|
||||
);
|
||||
|
||||
@@ -225,7 +225,7 @@ describe('Relocation', function () {
|
||||
await waitFor(() => expect(fetchPublicKey).toHaveBeenCalled());
|
||||
|
||||
expect(
|
||||
await screen.findByText("Save Sentry's public key to your machine")
|
||||
await screen.findByText("Save Sentinel's public key to your machine")
|
||||
).toBeInTheDocument();
|
||||
expect(await screen.getByText('key.pub')).toBeInTheDocument();
|
||||
expect(await screen.getByRole('button', {name: 'Continue'})).toBeInTheDocument();
|
||||
|
||||
@@ -46,7 +46,7 @@ function getRelocationOnboardingSteps(): StepDescriptor[] {
|
||||
},
|
||||
{
|
||||
id: 'public-key',
|
||||
title: t("Save Sentry's public key to your machine"),
|
||||
title: t("Save Sentinel's public key to your machine"),
|
||||
Component: PublicKey,
|
||||
cornerVariant: 'top-left',
|
||||
},
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user