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

Release v1.129.0 - release → staging #11006

Merged
merged 65 commits into from
Sep 26, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
dc891f3
Fix misaligned banner text
hkhalil-akamai Sep 11, 2024
4896dcd
Added changeset: Misaligned DNS banner text
hkhalil-akamai Sep 11, 2024
fc524ff
Use <Stack> to ensure spacing between elements
hkhalil-akamai Sep 12, 2024
67b686b
test: [M3-8316,M3-8317] - Tag cypress tests by adding the "method:e2e…
AzureLatte Sep 13, 2024
a85f327
upcoming: [M3-8576] – Fix "Create Volume" button state when "Encrypt …
dwiley-akamai Sep 13, 2024
8a540c3
Remove committed Cypress screenshots, simplify .gitignore rules (#10932)
jdamore-linode Sep 13, 2024
f04dfcb
tech story: [M3-8386] - Update storybook to take care of tar vulnerab…
coliu-akamai Sep 13, 2024
38a0d2e
refactor: [M3-6908] - Replace react-select in Profile (#10780)
carrillo-erik Sep 13, 2024
7c105de
feat: [M3-8326], [M3-8055] - Create Linode - Create Using Command L…
cpathipa Sep 13, 2024
46da3e1
fix: [M3-7574] - Fix missing labels for User Permission radio buttons…
carrillo-erik Sep 13, 2024
f0d9765
feat: [UIE-8002] - DBaaS 2.0 Landing Page (#10823)
mpolotsk-akamai Sep 13, 2024
0ac8742
fix: [M3-8572] - Scrollbar showing briefly on Splash Screen (#10922)
bnussman-akamai Sep 16, 2024
b2172c5
Merge pull request #10946 from linode/staging
hkhalil-akamai Sep 16, 2024
36243a4
Merge branch 'master' into develop
hkhalil-akamai Sep 16, 2024
6b3db2d
Merge pull request #10924 from hkhalil-akamai/M3-8161-dns-banner-misa…
hkhalil-akamai Sep 16, 2024
3ce0721
test: [M3-8544, M3-8545] - Add unit tests for Dialog and DeletionDial…
pmakode-akamai Sep 17, 2024
3758ec1
fix: [M3-7149] - Fix textfield tooltip icon focus area (#10938)
hkhalil-akamai Sep 17, 2024
44763ea
upcoming: [DI-20709] - CSS updates for widget level filters for ACLP …
venkymano-akamai Sep 17, 2024
63ae19a
fix: [M3-8589] - Flickering on the user profile page when updating th…
bnussman-akamai Sep 17, 2024
83654e1
chore(deps): bump dompurify from 3.1.0 to 3.1.3 (#10949)
dependabot[bot] Sep 17, 2024
451d63a
feat: [M3-8570] - Finish sunsetting Gravatar (#10930)
mjac0bs Sep 17, 2024
df32f28
change: [M3-8552] - eslint - mark formik as deprecated (#10944)
abailly-akamai Sep 17, 2024
75c5986
test: [M3-8565] - Add unit tests for rest of NodeBalancers package (#…
coliu-akamai Sep 18, 2024
d07788d
tech story: Update dompurify and jsPDF to fix dependabot alert (#10955)
coliu-akamai Sep 18, 2024
1a3b0f2
fix: [M3-8422] - Linode IPv6 rDNS typo (#10948)
bnussman-akamai Sep 18, 2024
9734976
feat: [UIE-8007] - DBaaS enhancements summary and settings (#10939)
corya-akamai Sep 18, 2024
518a663
fix: Marketplace Apache Spark Cluster URL Slug (#10965)
josephcardillo-akamai Sep 18, 2024
2556a99
chore: bump vite to 5.4.6 (#10960)
abailly-akamai Sep 19, 2024
c602e28
change: [M3-8599] - Disable 'Save' button in Change Avatar Color dial…
mjac0bs Sep 19, 2024
5f08477
change: [M3-8593] - Copy updates in Create with CLI modal (#10954)
cpathipa Sep 19, 2024
109bac6
feat: [UIE-8009] - DBaaS enhancements Backups (#10961)
mpolotsk-akamai Sep 19, 2024
f9a94a0
feat: [M3-8185] - Add Accessibility tab to Storybook Stories (#10942)
hana-akamai Sep 19, 2024
538d9e1
upcoming: [DI-20800] - CSS for widget size control and feedbacks (#10…
venkymano-akamai Sep 20, 2024
27abb00
test: [M3-8591, M3-8594] - Add unit tests for AccountActivationLandin…
coliu-akamai Sep 20, 2024
5b7c237
fix: [M3-8617] - Autocomplete Popper re-rendering causing test failur…
bnussman-akamai Sep 20, 2024
0a954bb
upcoming: [M3-8604] – Update URL for Volume Encryption guide (#10973)
dwiley-akamai Sep 20, 2024
f90ac7f
test: [M3-8616] - Fix failures in DBaaS update tests (#10975)
jdamore-linode Sep 20, 2024
64aec6e
change: [M3-8377, M3-8579] - Move Region section above Images in Lino…
hana-akamai Sep 20, 2024
4a418fa
fix: [M3-8602] - Fix `plan-selection.spec.ts` test failures on retrie…
jdamore-linode Sep 20, 2024
94580bb
change: [M3-6838] - Better "Backups Enabled" default when cloning Lin…
pmakode-akamai Sep 23, 2024
3a82669
change: [M3-7679] - Update VPC Assigned Linodes table header (#10940)
harsh-akamai Sep 23, 2024
ceb3fb5
feat: [M3-8592] - Limits: surface new API errors in Linode and LKE fl…
abailly-akamai Sep 23, 2024
f36485d
fix: [M3-7571] - Missing label for Full Account Access Toggle (#10931)
carrillo-erik Sep 23, 2024
c721a17
test: [M3-8619] - Fix Cypress test flake in `create-linode-from-image…
jdamore-linode Sep 23, 2024
a2b642c
test: [M3-8601] - Fix NodeBalancer `nodebalancers-create-in-complex-f…
jdamore-linode Sep 23, 2024
0882740
test: [M3-8556] - Add unit tests for NodeBalancer details package (#1…
coliu-akamai Sep 24, 2024
915faca
fix: [M3-8508] - Cancel Button Not Functioning in Delete Node Balance…
cpathipa Sep 24, 2024
30e28b8
chore: Update `husky` to latest (#10990)
bnussman-akamai Sep 24, 2024
055f35d
change: [M3-8622] - Update Images empty state as part of Image Servic…
bnussman-akamai Sep 24, 2024
56e9c4e
upcoming: [M3-8624] - Update Region description helper text (#10987)
hana-akamai Sep 24, 2024
0820e38
test: [M3-8395] - Fix Linode delete test flake by fixing deletion ass…
jdamore-linode Sep 24, 2024
4dd89b7
fix: [M3-8519] - Objects Table Refreshing Logic Fixed. (#10927)
dchyrva-akamai Sep 24, 2024
b549eb7
fix: [M3-8578] - Fix console error on Volume Create - Linode Config s…
cpathipa Sep 24, 2024
a44a179
fix: [M3-8657] - Set full height to DX Tools Modal and add Linode API…
cpathipa Sep 24, 2024
51ff822
fix: [UIE-8150] - DBaaS empty landing page show logo for V2 (#10993)
corya-akamai Sep 25, 2024
b1e9370
fix [UIE-8007] DBaaS Summary tab display correct user and readonly ho…
corya-akamai Sep 25, 2024
2a7be74
change: [M3-8614] - Update Image Upload dropzone copy as part of Imag…
bnussman-akamai Sep 25, 2024
cb2408a
fix: [UIE-8146] - DBaaS V2 bug fix (#10980)
mpolotsk-akamai Sep 25, 2024
fdca0e4
fix [UIE-8009] - DBaaS backups disable invalid dates, avoid unnecessa…
corya-akamai Sep 25, 2024
0a70c60
chore: [M3-8598] - Remove Linode Create v1 (#10958)
bnussman-akamai Sep 25, 2024
02058c6
fix: [M3-8661] - Fix crash in Volume Create page caused by misconfigu…
hkhalil-akamai Sep 25, 2024
bc48d76
fix: [UIE-8152] - DBaaS V2 Resize: disable Shared plans tab (#10995)
mpolotsk-akamai Sep 25, 2024
a6bd924
feat: [M3-8581] - GPUv2 Plan Selection Egress Banner (#10956)
abailly-akamai Sep 25, 2024
75e00f1
Cloud version v1.129.0, API v4 version v0.127.0, and Validation versi…
coliu-akamai Sep 25, 2024
66265ea
fix: [UIE-8157] - DBaaS type call requires X-Filter (#11010)
corya-akamai Sep 26, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
test: [M3-8591, M3-8594] - Add unit tests for AccountActivationLandin…
…g component, remove AddNewLink component (#10966)

* add AccountActivationLanding tests + cleanup styling

* switch component to have named instead of default export

* add tests for AddNewLink + skeleton stories

* create storybook for AddNewLink component

* add changesets

* switch to userEvent instead of fireEvent

* Update packages/manager/src/components/AddNewLink/AddNewLink.stories.tsx

Co-authored-by: Purvesh Makode <pmakode@akamai.com>

* Update packages/manager/src/components/AddNewLink/AddNewLink.stories.tsx

Co-authored-by: Purvesh Makode <pmakode@akamai.com>

* add new story/update test

* replacing AddNewLink with button

* delete AddNewLink, update styling

* update changesets

* fix failing tests

* update tests @pmakode-akamai

---------

Co-authored-by: Purvesh Makode <pmakode@akamai.com>
  • Loading branch information
coliu-akamai and pmakode-akamai authored Sep 20, 2024
commit 27abb009e03fd8a9240a09a08ac497bcca2ea0ae
5 changes: 5 additions & 0 deletions packages/manager/.changeset/pr-10966-removed-1726765827523.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@linode/manager": Removed
---

`AddNewLink` component, replacing instances with `Button` ([#10966](https://github.com/linode/manager/pull/10966))
5 changes: 5 additions & 0 deletions packages/manager/.changeset/pr-10966-tests-1726678346834.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@linode/manager": Tests
---

Add unit tests for `AccountActivationLanding` component ([#10966](https://github.com/linode/manager/pull/10966))
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import userEvent from '@testing-library/user-event';
import * as React from 'react';

import { renderWithTheme } from 'src/utilities/testHelpers';

import AccountActivationLanding from './AccountActivationLanding';

const openSupportTicket = 'Open a Support Ticket';

describe('AccountActivationLanding', () => {
it('renders the AccountActivationLanding component', () => {
const { getByText, queryByText } = renderWithTheme(
<AccountActivationLanding />
);

expect(
getByText('Your account is currently being reviewed.')
).toBeVisible();
expect(
getByText(
/Thanks for signing up! You’ll receive an email from us once our review is complete, so hang tight. If you have questions during this process/
)
).toBeVisible();
expect(getByText(/please open a Support ticket/)).toBeVisible();
expect(queryByText(openSupportTicket)).not.toBeInTheDocument();
});

it('toggles open the Support Ticket dialog', async () => {
const { getByText, queryByText } = renderWithTheme(
<AccountActivationLanding />
);

expect(queryByText(openSupportTicket)).not.toBeInTheDocument();
const supportButtonLink = getByText(/please open a Support ticket/);
await userEvent.click(supportButtonLink);
expect(getByText(openSupportTicket)).toBeVisible();
});
});
Original file line number Diff line number Diff line change
@@ -1,29 +1,16 @@
import Warning from '@mui/icons-material/CheckCircle';
import { Theme } from '@mui/material/styles';
import * as React from 'react';
import { useHistory } from 'react-router-dom';
import { makeStyles } from 'tss-react/mui';

import { ErrorState } from 'src/components/ErrorState/ErrorState';
import { Typography } from 'src/components/Typography';
import { AttachmentError } from 'src/features/Support/SupportTicketDetail/SupportTicketDetail';
import { SupportTicketDialog } from 'src/features/Support/SupportTickets/SupportTicketDialog';

const useStyles = makeStyles()((theme: Theme) => ({
cta: {
...theme.applyLinkStyles,
},
errorHeading: {
marginBottom: theme.spacing(2),
},
subheading: {
margin: '0 auto',
maxWidth: '60%',
},
}));
import { StyledLinkButton } from '../Button/StyledLinkButton';

import type { AttachmentError } from 'src/features/Support/SupportTicketDetail/SupportTicketDetail';

const AccountActivationLanding = () => {
const { classes } = useStyles();
const history = useHistory();

const [supportDrawerIsOpen, toggleSupportDrawer] = React.useState<boolean>(
Expand All @@ -46,19 +33,24 @@ const AccountActivationLanding = () => {
<ErrorState
errorText={
<React.Fragment>
<Typography className={classes.errorHeading} variant="h2">
<Typography
sx={(theme) => ({ marginBottom: theme.spacing(2) })}
variant="h2"
>
Your account is currently being reviewed.
</Typography>
<Typography className={classes.subheading}>
<Typography
sx={{
margin: '0 auto',
maxWidth: '60%',
}}
>
Thanks for signing up! You&rsquo;ll receive an email from us once
our review is complete, so hang tight. If you have questions during
this process{' '}
<button
className={classes.cta}
onClick={() => toggleSupportDrawer(true)}
>
<StyledLinkButton onClick={() => toggleSupportDrawer(true)}>
please open a Support ticket
</button>
</StyledLinkButton>
.
</Typography>
<SupportTicketDialog
Expand Down
61 changes: 0 additions & 61 deletions packages/manager/src/components/AddNewLink/AddNewLink.tsx

This file was deleted.

4 changes: 0 additions & 4 deletions packages/manager/src/components/AddNewLink/index.ts

This file was deleted.

9 changes: 6 additions & 3 deletions packages/manager/src/components/Button/Button.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import HelpOutline from '@mui/icons-material/HelpOutline';
import _Button, { ButtonProps as _ButtonProps } from '@mui/material/Button';
import { Theme, styled } from '@mui/material/styles';
import { SxProps } from '@mui/system';
import _Button from '@mui/material/Button';
import { styled } from '@mui/material/styles';
import * as React from 'react';

import Reload from 'src/assets/icons/reload.svg';
Expand All @@ -10,6 +9,10 @@ import { Tooltip } from 'src/components/Tooltip';
import { rotate360 } from '../../styles/keyframes';
import { omittedProps } from '../../utilities/omittedProps';

import type { ButtonProps as _ButtonProps } from '@mui/material/Button';
import type { Theme } from '@mui/material/styles';
import type { SxProps } from '@mui/system';

export type ButtonType = 'outlined' | 'primary' | 'secondary';

export interface ButtonProps extends _ButtonProps {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,21 +31,23 @@ describe('Access Controls', () => {
).toBeInTheDocument();
});

it('Should disable "Manage Access Control" button if disabled = true', () => {
const database = databaseFactory.build();
const { getByTitle } = renderWithTheme(
<AccessControls database={database} disabled={true} />
);
const manageAccessControlBtn = getByTitle('Manage Access Controls');
expect(manageAccessControlBtn).toBeDisabled();
});

it('Should enable "Manage Access Control" button if disabled = false', () => {
const database = databaseFactory.build();
const { getByTitle } = renderWithTheme(
<AccessControls database={database} disabled={false} />
);
const manageAccessControlBtn = getByTitle('Manage Access Controls');
expect(manageAccessControlBtn).toBeEnabled();
});
it.each([
['disable', true],
['enable', false],
])(
'should %s "Manage Access Control" button when disabled is %s',
(_, isDisabled) => {
const database = databaseFactory.build();
const { getByRole } = renderWithTheme(
<AccessControls database={database} disabled={isDisabled} />
);
const button = getByRole('button', { name: 'Manage Access Controls' });

if (isDisabled) {
expect(button).toBeDisabled();
} else {
expect(button).toBeEnabled();
}
}
);
});
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import * as React from 'react';
import { makeStyles } from 'tss-react/mui';

import { ActionsPanel } from 'src/components/ActionsPanel/ActionsPanel';
import AddNewLink from 'src/components/AddNewLink';
import { Button } from 'src/components/Button/Button';
import { ConfirmationDialog } from 'src/components/ConfirmationDialog/ConfirmationDialog';
import { InlineMenuAction } from 'src/components/InlineMenuAction/InlineMenuAction';
import { Notice } from 'src/components/Notice/Notice';
Expand Down Expand Up @@ -197,12 +197,14 @@ export const AccessControls = (props: Props) => {
</div>
<div className={classes.sectionText}>{description ?? null}</div>
</div>
<AddNewLink
<Button
buttonType="primary"
className={classes.addAccessControlBtn}
disabled={disabled}
label="Manage Access Controls"
onClick={() => setAddAccessControlDrawerOpen(true)}
/>
>
Manage Access Controls
</Button>
</div>
{ipTable(allowList)}
<ConfirmationDialog
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,31 +24,24 @@ describe('DatabaseSettings Component', () => {
expect(headings[2].textContent).toBe('Delete Cluster');
});

it('Should disable buttons if disabled = true', () => {
const { getByTitle } = renderWithTheme(
<DatabaseSettings database={database} disabled={true} />
it.each([
['disable', true],
['enable', false],
])('should %s buttons when disabled is %s', (_, isDisabled) => {
const { getByRole, getByTitle } = renderWithTheme(
<DatabaseSettings database={database} disabled={isDisabled} />
);
const disabledButtons = [
'Manage Access Controls',
'Reset Root Password',
'Save Changes',
];
const button1 = getByTitle('Reset Root Password');
const button2 = getByTitle('Save Changes');
const button3 = getByRole('button', { name: 'Manage Access Controls' });

for (const buttonTitle of disabledButtons) {
const button = getByTitle(buttonTitle);
expect(button).toBeDisabled();
}
});

it('Should enable buttons if disabled = false', () => {
const { getByTitle } = renderWithTheme(
<DatabaseSettings database={database} />
);
const enabledButtons = ['Manage Access Controls', 'Reset Root Password'];

for (const buttonTitle of enabledButtons) {
const button = getByTitle(buttonTitle);
expect(button).toBeEnabled();
if (isDisabled) {
expect(button1).toBeDisabled();
expect(button2).toBeDisabled();
expect(button3).toBeDisabled();
} else {
expect(button1).toBeEnabled();
expect(button3).toBeEnabled();
}
});

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import { Database } from '@linode/api-v4/lib/databases/types';
import * as React from 'react';

import { Divider } from 'src/components/Divider';
import { Typography } from 'src/components/Typography';
import { Paper } from 'src/components/Paper';
import { Typography } from 'src/components/Typography';
import { useProfile } from 'src/queries/profile/profile';

import AccessControls from '../AccessControls';
Expand All @@ -12,6 +11,8 @@ import DatabaseSettingsMenuItem from './DatabaseSettingsMenuItem';
import DatabaseSettingsResetPasswordDialog from './DatabaseSettingsResetPasswordDialog';
import MaintenanceWindow from './MaintenanceWindow';

import type { Database } from '@linode/api-v4/lib/databases/types';

interface Props {
database: Database;
disabled?: boolean;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import { useTheme } from '@mui/material/styles';
import * as React from 'react';
import { useParams } from 'react-router-dom';

import AddNewLink from 'src/components/AddNewLink';
import { Box } from 'src/components/Box';
import { Button } from 'src/components/Button/Button';
import { DocsLink } from 'src/components/DocsLink/DocsLink';
import OrderBy from 'src/components/OrderBy';
import Paginate from 'src/components/Paginate';
Expand Down Expand Up @@ -97,11 +97,9 @@ const LinodeConfigs = () => {
}}
label={'Configuration Profiles'}
/>
<AddNewLink
disabled={isReadOnly}
label="Add Configuration"
onClick={onCreate}
/>
<Button buttonType="primary" disabled={isReadOnly} onClick={onCreate}>
Add Configuration
</Button>
</Box>
<OrderBy data={configs ?? []} order={'asc'} orderBy={'label'}>
{({ data: orderedData, handleOrderChange, order, orderBy }) => (
Expand Down
Loading
Loading