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

test: [M3-6505] - Add StackScript Update/Delete E2E Tests #9315

Merged
merged 2 commits into from
Jul 7, 2023

Conversation

cliu-akamai
Copy link
Contributor

Description 📝

Add new E2E tests for StackScript

Major Changes 🔄

  • Add update StackScript tests
  • Add delete StackScript tests

How to test 🧪

yarn cy:run -s "cypress/e2e/core/stackscripts/*.spec.ts"

@cypress
Copy link

cypress bot commented Jun 26, 2023

1 flaky tests on run #4807 ↗︎

0 181 3 0 Flakiness 1

Details:

Fixed comments
Project: Cloud Manager E2E Commit: bcc09a2e88
Status: Passed Duration: 15:06 💡
Started: Jul 7, 2023 5:47 PM Ended: Jul 7, 2023 6:02 PM
Flakiness  cypress/e2e/core/objectStorage/object-storage.smoke.spec.ts • 1 flaky test

View Output Video

Test Artifacts
object storage smoke tests > can upload, view, and delete bucket objects - smoke Output Screenshots Video

This comment has been generated by cypress-bot as a result of this project's GitHub integration settings.

const stackScripts = stackScriptFactory.buildList(2, {
is_public: false,
});
interceptGetStackScripts(stackScripts).as('getStackScripts');
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
interceptGetStackScripts(stackScripts).as('getStackScripts');
mockGetStackScripts(stackScripts).as('getStackScripts');

I think this may be the cause of the test failure!

Copy link
Contributor

@hkhalil-akamai hkhalil-akamai left a comment

Choose a reason for hiding this comment

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

All tests passing on my end, looks good! Great work!

@bnussman-akamai bnussman-akamai added Approved Multiple approvals and ready to merge! and removed Add'tl Approval Needed Waiting on another approval! labels Jun 30, 2023
Copy link
Contributor

@jdamore-linode jdamore-linode left a comment

Choose a reason for hiding this comment

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

Hey Cassie! Posted a couple suggestions, mostly surrounding the JSON.parse(JSON.stringify()) stuff, but also had one quick function rename suggestion. Let me know if you have any questions! Other than that everything is running nicely so ready to approve soon :)

Comment on lines 59 to 60
const updateStackScript = JSON.parse(JSON.stringify(stackScripts[1]));
mockGetStackScripts([updateStackScript]).as('getUpdatedStackScripts');
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
const updateStackScript = JSON.parse(JSON.stringify(stackScripts[1]));
mockGetStackScripts([updateStackScript]).as('getUpdatedStackScripts');
mockGetStackScripts([stackScripts[1]]).as('getUpdatedStackScripts');

We can eliminate the JSON.parse(JSON.stringify(...)) pretty easily for this one!

Comment on lines 161 to 177
const updatedStackScripts = JSON.parse(JSON.stringify(stackScripts));
updatedStackScripts[0].label = stackscriptLabel;
updatedStackScripts[0].description = stackscriptDesc;
mockGetStackScripts(updatedStackScripts).as('getStackScripts');
mockUpdateStackScript(updatedStackScripts[0].id, updatedStackScripts[0]).as(
'updateStackScript'
);
Copy link
Contributor

Choose a reason for hiding this comment

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

This one is tricky. I think I understand why we reached for JSON.parse(JSON.stringify(...)), because I think you may have been getting bitten by some combination of Cypress's command queueing behavior and JavaScript's ambiguous reference handling, so I want to explain what's going on here.

I think the first solution that would come to mind here, but which wouldn't actually work, would be something like this:

const updatedStackScript = stackScripts;
// Or maybe `const updatedStackScript = [...stackScripts];`...
updatedStackScripts[0].label = stackscriptLabel;
updatedStackScripts[0].description = stackscriptDesc;
// ...

Not only does this not work, it also causes a pretty strange behavior if you try running the test in the debugger: when Cypress loads the page initially, and Cloud makes a GET request to fetch the StackScripts from the API, the mocked response already has its label set to stackscriptLabel even though the update operation hasn't occurred yet, but our assertions (cy.findByText(), etc.) all still expect to find the original label.

When Cypress begins running a test, it executes all of the test code right away. All of the Cypress functions like cy.findByText(), etc., don't actually do anything right away, however. Instead, they add a command to Cypress's command queue. These commands begin running after the code itself has executed, and that's what you're seeing happen when you watch the debugger.

Meanwhile, when you call updatedStackScripts[0].label = '...' and updatedStackScripts[0].description = '...' on lines 162 and 163, you're actually modifying the original StackScript objects that you created back on line 82 via stackScriptFactory.buildList(2), because JavaScript passes objects as references.

To complicate matters, primitive values like strings are not passed as references. So when you queue a Cypress command to find one of the mocked StackScripts by its label, like on line 87, the Cypress command will be queued with the original label value. However, by the time that command is actually executed, the StackScript objects themselves which are used for the GET mock have already been modified (lines 162, 163) with the updated label, and so that's what appears on the screen and the Cypress command fails to find what it's looking for.

There are a couple ways to fix this, and JSON.parse(JSON.stringify(...)) technically works because it's creating a clone of the objects and circumventing all of this reference confusion. However, I think the easiest and clearest solution is to simply set up all of your mock data (or as much as you can) at the very beginning of the test. So that would look something like this:

    const stackscriptLabel = randomLabel();
    const stackscriptDesc = randomPhrase();
    const stackscriptImage = 'Alpine 3.17';

    const stackScripts = stackScriptFactory.buildList(2);
    // Import StackScript type from Linode API package.
    const updatedStackScripts: StackScript[] = [
      // Spread operator clones an object...
      {...stackScripts[0]},
      {
        ...stackScripts[1],
        label: stackscriptLabel,
        description: stackscriptDesc,
      }
    ];

Comment on lines 239 to 250
const updatedStackScript = JSON.parse(JSON.stringify(stackScripts[0]));
updatedStackScript.is_public = true;
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
const updatedStackScript = JSON.parse(JSON.stringify(stackScripts[0]));
updatedStackScript.is_public = true;
const updatedStackScript = {...stackScripts[0]}
updatedStackScript.is_public = true;

This is caused by the same issue I described above, and can also be solved similarly by defining the updatedStackScript object as a clone of stackScripts[0] (which is essentially what JSON.parse(JSON.stringify()) is doing anyhow, but in a more roundabout way).

(I'd still suggest moving all of this type of stuff to the top of the test, just for the sake of readability)

*
* @returns Cypress chainable.
*/
export const interceptGetStackScript = (
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
export const interceptGetStackScript = (
export const mockGetStackScript = (

(And in update-stackscript.spec.ts too)

Copy link
Contributor

@jdamore-linode jdamore-linode left a comment

Choose a reason for hiding this comment

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

Nice work @cliu-akamai !

@cliu-akamai cliu-akamai merged commit 41c769a into linode:develop Jul 7, 2023
11 checks passed
@cliu-akamai cliu-akamai deleted the feature/M3-6505 branch July 7, 2023 19:23
abailly-akamai added a commit that referenced this pull request Jul 10, 2023
* WIP

* refactor: [M3-6063] - Fix errors

* refactor: [M3-6063] - Test changes

* refactor: [M3-6063] - Code cleanup

* Added changeset: Refactor components to use TypeToConfirmDialog

* refactor: [M3-6063] - Code cleanup after feedback

* refactor: [M3-6063] - Fix failing test

* refactor: [M3-6063] - Revert the last code change

* refactor: [M3-6063] - Fix create volume test spec

* refactor: [M3-6063] - Revert create volume spec

* refactor: [M3-6063] - PR feedback changes

* refactor: [M3-6063] - Change if code to switch

* refactor: [M3-6063] - Refactor conditional logic

* refactor: [M3-6063] - Fix handleRestoreDatabase()

* refactor: [M3-6063] - Revert primary btn text strs

* refactor: [M3-6361] - Refactor class component

* refactor: [M3-6361] - Add changeset

* M3-6552: Add Third Party Access Tokens Cypress integration tests (#9223)

* M3-6506: Add StackScript Landing Page Integration Tests (#9275)

* fix: [M3-6683]: Fix confirmation modal overflow on mobile (#9289)

* Fix: [M3-6683] Remove min-width for confirmation modal

* Fix: [M3-6683] Improve modal title line height

* Added changeset: Fix confirmation modal overflow on mobile

* refactor: [M3-6391] - MUI v5 Migration - `Components > SingleTextFieldForm` (#9292)

* style migration and clean up

* Added changeset: MUI v5 Migration - Components > SingleTextFieldForm

* use `sx`

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* fix: Reduce Firewall create and update e2e test flakiness (#9298)

* Click back into field to dismiss autocomplete popper

* Fix issue with LinodeSelectV2 label/text field association, update test to find input by label

* Clean up, click back into select field to dismiss autocomplete popper

* Find button within group to avoid selecting drawer title

* Offload interactions involving firewall creation to API

* Wait for firewall create requests

* Add intercepts and wait for Firewall update API requests to resolve

* Added changeset: Fix LinodeSelectV2 label association

* Fix flake involving Linode selection when capturing image

* fix: Make `yarn up:expose` actually expose Cloud Manager (#9297)

* make expose command work

* Added changeset: Made yarn up:expose actually expose Cloud Manager on all interfaces

* add some basic docs

* Update docs/GETTING_STARTED.md

Fix `envrionments` ➡️ `environments` typo

Co-authored-by: Mariah Jacobs <114685994+mjac0bs@users.noreply.github.com>

---------

Co-authored-by: Banks Nussman <banks@nussman.us>
Co-authored-by: Mariah Jacobs <114685994+mjac0bs@users.noreply.github.com>

* style: [M3-6639] - Add outline to country flags that contain white (#9288)

* add outline for some lags and add Flag story

* make type respect what the Linode API returns

* Added changeset: Outline to some country flags

* use `styled`

* only add outline in light mode

* use boxShadow

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* chore: Update `deleteChangesets.mjs` to track changeset deletions (#9305)

Co-authored-by: Jaalah Ramos <jaalah.ramos@gmail.com>

* fix: [Marketplace] - Remove underscore in prometheus & grafana svg (#9301)

* remove dash from svg

* update svg name

* remove old grey logo

* rename file

* Added changeset: Remove underscore in prometheus & grafana svg

---------

Co-authored-by: Hana Xu <hxu@akamai.com>

* refactor: [M3-6386] - MUI v5 Migration - `Components > SelectableTableRow` (#9299)

## Description 📝
Migrate styles and update code patterns for the SelectableTableRow component

## How to test 🧪
Verify that there has been no visual regressions in `/account/service-transfers/create`

* chore: Move new OAuth e2e tests into 'core' directory (#9307)

* Move OAuth tests to core/account

* Make '<REDACTED>' default value for OAuth factory

* refactor: [M3-6361] - Add className and event type

* Refactor: [M3-6522] Chip: MUI refactor + v7 story (#9310)

* Refactor: [M3-6522] Chip: MUI refactor + story

* Refactor: [M3-6522] delete .mdx file

* Added changeset: MUI v5 - Components > Chip

* Refactor: [M3-6522] delete .mdx file

* Refactor: [M3-6522] fix broken story

* fix: [M3-6720] - Restore DBaaS engine icons (#9306)

* Pass JSX elements instead of callbacks to Select options

* Added changeset: Restore icons in DBaaS engine selection field

* Feat: [M3-6473] - Add helper text to the Add SSHKey Drawer Form (#9290)

* Feat: [M3-6473] initial commit - replace default export

* Feat: [M3-6473] Helper text and trim on blur

* Feat: [M3-6473] Cleanup

* Added changeset: Helper Text for the Add SHHKey Drawer form

* Feat: [M3-6473] Feedback

* Update packages/manager/src/features/Profile/SSHKeys/CreateSSHKeyDrawer.tsx

Co-authored-by: Mariah Jacobs <114685994+mjac0bs@users.noreply.github.com>

---------

Co-authored-by: Mariah Jacobs <114685994+mjac0bs@users.noreply.github.com>

* refactor: [M3-6359] - MUI v5 Migration - `Components > LongviewLineGraph` (#9291)

## Description 📝
Update styles and code patterns for the LongviewLineGraph component

## How to test 🧪
So, we don't have an account that has Longview setup and when I tried to run the curl command to set it up, I kept running into errors. I think the changes are minor enough that we can just check the code

* refactor: [M3-6788] - MUI v5 Migration - `Components > TextField` (#9314)

* initial `TextField` refactor

* update storybook story

* rename `Props` ➡️ `TextFieldProps`

* clean up the mdx

* fix broken storybook build

* feedback @mjac0bs

* add some defaults

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* chore: Delete old changesets from `develop` branch (#9302)

Co-authored-by: Jaalah Ramos <jaalah.ramos@gmail.com>

* refactor: [M3-6354] - MUI v5 Migration - `Components > LandingLoading` (#9282)

Co-authored-by: Jaalah Ramos <jaalah.ramos@gmail.com>

* refactor: [M3-6791] - MUI v5 Migration - `Components > Toolbar` (#9319)

* move Toolbar to the correct place and clean up exports

* Added changeset: MUI v5 Migration - Components > Toolbar

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* refactor: [M3-6793] - MUI v5 Migration - `Components > AppBar` (#9321)

* move AppBar to correct place and use named exports

* Added changeset: MUI v5 Migration - Components > AppBar

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* refactor: [M3-6195] - MUI v5 Migration - `Components > Button` (part 2) (#9325)

* delete core files and clean up exports

* Added changeset: MUI v5 Migration - Components > Button

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* fix: [M3-6638] - Object Storage > Create Access Key Drawer Layout Issue (#9296)

* fix: [M3-6638] - Object Storage > Create Access Key Drawer Layout Issue

* Added changeset: Object Storage > Create Access Key Drawer Layout Issue

* Add descriptive message

* code cleanup

* refactor: [M3-6290] - MUI v5 Migration - `Components > Accordion` (part 2) (#9320)

* update storybook and move component to correct spot

* Added changeset: MUI v5 Migration - Components > Accordion (part 2)

* futher clean up and feedback from @dwiley-akamai

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* fix: local dev server AppBarProps export  (#9334)

Co-authored-by: Banks Nussman <banks@nussman.us>

* refactor: [M3-6063] - Fix CloseAccount button

* refactor: [M3-6702] - React Query - Linodes - General clean up and refactors (#9294)

* refactor and clean up

* fix spelling for entity names

* remove more things

* match production better

* igrate off withLinodes container

* make the linodes container pull from React Query

* remove last few containers for now

* hook up search with RQ

* fix broken tests

* Added changeset: React Query - Linodes - General clean up and refactors

* remove `useLinodes` redux hook

* feedback @dwiley-akamai

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* Refactor: [M3-6522-selection-card] Selection Card: named exports and v7 story (#9327)

* Refactor: [M3-6522-selection-card] Initial commit: exports

* Refactor: [M3-6522-selection-card] New v7 story

* Added changeset: MUI v5 Migration - Components > SelectionCard

* Refactor: [M3-6522-selection-card] Add some interactivity

* refactor: [M3-6797] - MUI v5 Migration - `Components > Hidden` (#9326)

* move component and use named export

* Added changeset: MUI v5 Migration - Components > Hidden

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* refactor: [M3-6794] - MUI v5 Migration - `Components > Box` (#9322)

* move files, update exports, create Storybook story

* Added changeset: MUI v5 Migration - Components > Box

* fix storybook build

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* feat: [M3-6707] – Light/dark mode shortcut copy on the "My Settings" page (#9286)

* refactor: [M3-6798] - MUI v5 Migration - `Components > Typography` (#9328)

* initial refactor and new storybook story

* Added changeset: MUI v5 Migration - Components > Typography

* fix unit tests by updated exports

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* Revert "refactor: [M3-6063] - Fix CloseAccount button"

This reverts commit 4a49592.

* Add changes after revert of yarn.lock, cachedData

* Refactor: [M3-6522] - Update Link component export and improve Storybook story (#9313)

* Refactor: [M3-6522-link] Initial commit: remoce default export and new story

* Refactor: [M3-6522-link] argsTypes

* Refactor: [M3-6522-link] More Documntation

* Added changeset: Link component: remove default export and improved storybook story

* Refactor: [M3-6522-link] Actualy remove old mdx story

* Refactor: [M3-6522-link] feedback

* Refactor: [M3-6522-link] post rebase fix

* Refactor: [M3-6522-link] feedback 2

* Refactor: [M3-6522-link] fix bad rebase

* Fix: [M3-6800] Firewall custom port validation (#9336)

* Fix: [M3-6800] improve FW custom ports validation

* Fix: [M3-6800] increased test coverage

* Added changeset: Firewall custom ports validation

* Added changeset: Firewall custom port validation

* Fix: [M3-6800] cleanup

* Fix: [M3-6800] moaaar cleanup

* Fix: [M3-6800] better naming conventions and JSDoc

* Fix: [M3-6800] Improved feedback

* refactor: [M3-6458] - Remove old changelog scripting (#9340)

* remove changeset bot, python utils, and some shell scripts

* more script clean up

* Added changeset: Remove old changelog scripting

* clean up dependencies and test setups

* get rid of more js 😖 sorry, i can't help it

* re-add joe's script

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* fix: [M3-5577] - Disable delete button for public IP addresses (#9332)

## Description 📝
Disable delete button for public IP addresses if it's the only IP address and display a tooltip

## How to test 🧪
Check the Network tab of a Linode's details page

* chore: [M3-6666] -  Clean up for consistent spelling of "canceled" (#9335)

* Update api-v4 types

* Clean up checks and string manip for inconsistent spelling

* Added changeset: Use 'canceled' instead of 'cancelled' for EntityTransferStatus

* Forgot to commit mock canceled transfer event

* Refactor: [M3-6522-copy-tooltip] CopyTooltip: Styled component and v7 story (#9323)

* Refactor: [M3-6522-copy-tooltip] Styled component and v7 story

* Added changeset: MUI v5 Migration - Components > CopyTooltip

* Refactor: [M3-6522-copy-tooltip] feedback - missing props

* Fix: [M3-6786] ActionMenu tooltip icon color (#9352)

* Fix: [M3-6786] ActionMenu tooltip icon color

* Added changeset: ActionMenu tooltip icon color deprecation

* refactor: Remove `withLoadingAndError` and clean up 2FA components (#9318)

* remove `withLoadingAndError` and clean up 2fa

* Added changeset: Remove `withLoadingAndError` and clean up 2FA components

* remove more legacy stuff

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* Chore: [M3-6527] - Storybook update and maintenance fixes (#9330)

* Chore: [M3-6527]: Update storybook

* Chore: [M3-6527]: Add msw to loader

* Chore: [M3-6527]: Fix props forwarding for Chip component

* Chore: [M3-6527]: Yarn lock update

* Chore: [M3-6527]: Remove fix present in other PR

* refactor: [M3-6804] - MUI v5 Migration - `Components > Chip` (#9339)

* move to correct spot and update imports

* Added changeset: MUI v5 Migration - Components > Chip

* use relative import for story

* fix: add prop filter

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* fix: [M3-6177] - Only request logo once for invoice pdf (#9355)

## Description 📝
Previously, when downloading an invoice, we would make a request for the logo image for every page of the invoice potentially causing delays for large accounts. This PR fixes that by fetching the image only once and passing that to jsPDF's addImage function

## How to test 🧪
- Go to /account/billing
- In the browser dev tools, go to the network tab and filter by .png
- Download an invoice PDF and observe only 1 request made for the akamai logo
- Open the PDF and ensure that the logo is still on every page

* fix: Fix miscellaneous Cypress test flake (#9342)

* Fix flake related to intercepts that are set up too late

* Fix flake stemming from multiple instances of phrase existing on page

* fix: Fix Linode landing page delete smoke test flake (#9348)

* Wait for landing page to update before deleting next Linode

* Use Linode API SDK to create Linodes for test

* refactor: [M3-6350] - MUI v5 Migration - `Components > InlineMenuAction` (#9268)

Co-authored-by: Jaalah Ramos <jaalah.ramos@gmail.com>

* fix: [M3-6627] - Fix `cy.defer()` TypeScript errors (#9349)

* Fix cy.defer command, replace instances of cy.wrap with cy.defer

* Rename e2e.js to e2e.ts, replace cy.wrap with cy.defer

* Improve `attemptWithBackoff` error handling by listing each attempt failure error message

* Improve cy.defer log handling

* fix: [M3-6782] - Fix Third-Party Access Tokens Flaky Tests (#9354)

* chore: [M3-6777] - Rename Cypress functions and variables related to secrets (#9350)

* Rename functions and variables related to secrets, improve object storage mock utils

* Fix failing access key revoke test

* Fix mismatched error variable name in prebuild script

* test: [M3-6054] - Add Cypress test coverage for Linode Create via CLI dialog (#9351)

* Add test to assert Linode CLI snippet content, close dialog

* fix: NVM should be NVMe (#9366)

Co-authored-by: Jaalah Ramos <jaalah.ramos@gmail.com>

* refactor: [M3-6299] - MUI v5 Migration - `Components > Checkbox` (part 2) (#9338)

* update exports, remove core, fix component, new storybook story

* add basic jsdoc

* Added changeset: MUI v5 Migration - Components > Checkbox (part 2)

* feedback @dwiley-akamai

* feedback @hana-linode

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* refactor: [M3-6393] - MUI v5 - `Components > Snackbar` (#9359)

Co-authored-by: Jaalah Ramos <jaalah.ramos@gmail.com>

* refactor: [M3-6790] – MUI v5 Migration - `Components > Divider` (#9353)

* fix: [M3-6833] Replace negative lookbehind regular expression in eventMessageGenerators (#9360)

* fix: [M3-6833] Fix issue with Negative lookbehind regular expression

* Added changeset: Fix issue with notification menu crashing older safari versions

* feat: [M3-6841] - Add AGLB feature flag (#9370)

Adds AGLB feature flag 🚩

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* feat: [M3-6779] - AGLB api-v4 endpoints (#9363)

Adds initial api-v4 endpoints and types for the AGLB

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* feat: [M3-6840] - Add VPC feature flag (#9368)

## Description 📝
Add VPC feature flag

## How to test 🧪
Check that `vpc` is being returned from `useFlags()` and that it is under the feature flag tool

* feat: [M3-6722] – VPC endpoints, validation, & React Query queries (#9361)

* feat: [M3-6789] - Improve failed backup error messaging (#9364)

* Update linode_snapshot event toast

* Update backup restore and snapshot error events and toasts

* Fix styling regression for snapshot error notice

* Add backups warning for create flow with private images

* Add changeset

* Address feedback

* Add mock failed backups_restore event to be removed before merging

* Address naming and copy feedback

* Fix toast link text color in dark mode

* Revert unintentional commit to include failed event in mocks

* fix: wording in "My Profile" -> "Login and Authentication" (#9358)

## Description 📝
**Old:** 
```
To disable Google authentication and log in using your Linode credentials, click the Linode button above. 
```

**New:**
```
To disable Google authentication and log in using your Cloud Manager credentials, click the Cloud Manager button above.
```

* refactor: [M3-6839] - MUI v5 Migration - `Components > Tooltip`  (#9369)

* initial toolip refactor

* Added changeset: MUI v5 Migration - Components > Tooltip

* Refactor Tooltip and convert story

* fix spelling

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* test: [M3-6505] - Add StackScript Update/Delete E2E Tests (#9315)

* M3-6505: Add StackScript Update/Delete E2E Tests

* Fixed comments

* refactor: Upgrade LaunchDarkly SDK and use anonymous users (#9285)

* Upgrade LD and remove username

* Remove unused import

* Mark all attributes private

* Added changeset: Upgrade LaunchDarkly client library

* Address feedback

* Update packages/manager/src/IdentifyUser.tsx

---------

Co-authored-by: Jaalah Ramos <125309814+jaalah-akamai@users.noreply.github.com>

* Cloud version 1.96.0, API v4 version 0.96.0, and Validation version 0.26.0

* Update changelogs

* feat: [M3-6842] - Update Metadata copy (#9374)

* add labelTooltipText prop to TextField component

* update copy

* Added changeset: Update Metadata copy

* fix unit test

* Update tests to reflect updated markup

---------

Co-authored-by: Joe D'Amore <jdamore@linode.com>

* Update Changelog for v1.97.0 release (#9378)

* fix: minor css regression account > billing history dropdowns (#9379)

Co-authored-by: Jaalah Ramos <jaalah.ramos@gmail.com>

---------

Co-authored-by: ecarrill <ecarrill@akamai.com>
Co-authored-by: cliu-akamai <126020611+cliu-akamai@users.noreply.github.com>
Co-authored-by: Banks Nussman <115251059+bnussman-akamai@users.noreply.github.com>
Co-authored-by: Banks Nussman <banks@nussman.us>
Co-authored-by: jdamore-linode <97627410+jdamore-linode@users.noreply.github.com>
Co-authored-by: Mariah Jacobs <114685994+mjac0bs@users.noreply.github.com>
Co-authored-by: Jaalah Ramos <125309814+jaalah-akamai@users.noreply.github.com>
Co-authored-by: Jaalah Ramos <jaalah.ramos@gmail.com>
Co-authored-by: hmorris3293 <morrisholdenx@gmail.com>
Co-authored-by: Hana Xu <hxu@akamai.com>
Co-authored-by: Hana Xu <115299789+hana-linode@users.noreply.github.com>
Co-authored-by: carrillo-erik <119514965+carrillo-erik@users.noreply.github.com>
Co-authored-by: cpathipa <119517080+cpathipa@users.noreply.github.com>
Co-authored-by: Dajahi Wiley <114682940+dwiley-akamai@users.noreply.github.com>
Co-authored-by: John Callahan <114753608+jcallahan-akamai@users.noreply.github.com>
Co-authored-by: Joe D'Amore <jdamore@linode.com>
abailly-akamai added a commit that referenced this pull request Jul 10, 2023
* WIP

* refactor: [M3-6063] - Fix errors

* refactor: [M3-6063] - Test changes

* refactor: [M3-6063] - Code cleanup

* Added changeset: Refactor components to use TypeToConfirmDialog

* refactor: [M3-6063] - Code cleanup after feedback

* refactor: [M3-6063] - Fix failing test

* refactor: [M3-6063] - Revert the last code change

* refactor: [M3-6063] - Fix create volume test spec

* refactor: [M3-6063] - Revert create volume spec

* refactor: [M3-6063] - PR feedback changes

* refactor: [M3-6063] - Change if code to switch

* refactor: [M3-6063] - Refactor conditional logic

* refactor: [M3-6063] - Fix handleRestoreDatabase()

* refactor: [M3-6063] - Revert primary btn text strs

* refactor: [M3-6361] - Refactor class component

* refactor: [M3-6361] - Add changeset

* M3-6552: Add Third Party Access Tokens Cypress integration tests (#9223)

* M3-6506: Add StackScript Landing Page Integration Tests (#9275)

* fix: [M3-6683]: Fix confirmation modal overflow on mobile (#9289)

* Fix: [M3-6683] Remove min-width for confirmation modal

* Fix: [M3-6683] Improve modal title line height

* Added changeset: Fix confirmation modal overflow on mobile

* refactor: [M3-6391] - MUI v5 Migration - `Components > SingleTextFieldForm` (#9292)

* style migration and clean up

* Added changeset: MUI v5 Migration - Components > SingleTextFieldForm

* use `sx`

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* fix: Reduce Firewall create and update e2e test flakiness (#9298)

* Click back into field to dismiss autocomplete popper

* Fix issue with LinodeSelectV2 label/text field association, update test to find input by label

* Clean up, click back into select field to dismiss autocomplete popper

* Find button within group to avoid selecting drawer title

* Offload interactions involving firewall creation to API

* Wait for firewall create requests

* Add intercepts and wait for Firewall update API requests to resolve

* Added changeset: Fix LinodeSelectV2 label association

* Fix flake involving Linode selection when capturing image

* fix: Make `yarn up:expose` actually expose Cloud Manager (#9297)

* make expose command work

* Added changeset: Made yarn up:expose actually expose Cloud Manager on all interfaces

* add some basic docs

* Update docs/GETTING_STARTED.md

Fix `envrionments` ➡️ `environments` typo

Co-authored-by: Mariah Jacobs <114685994+mjac0bs@users.noreply.github.com>

---------

Co-authored-by: Banks Nussman <banks@nussman.us>
Co-authored-by: Mariah Jacobs <114685994+mjac0bs@users.noreply.github.com>

* style: [M3-6639] - Add outline to country flags that contain white (#9288)

* add outline for some lags and add Flag story

* make type respect what the Linode API returns

* Added changeset: Outline to some country flags

* use `styled`

* only add outline in light mode

* use boxShadow

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* chore: Update `deleteChangesets.mjs` to track changeset deletions (#9305)

Co-authored-by: Jaalah Ramos <jaalah.ramos@gmail.com>

* fix: [Marketplace] - Remove underscore in prometheus & grafana svg (#9301)

* remove dash from svg

* update svg name

* remove old grey logo

* rename file

* Added changeset: Remove underscore in prometheus & grafana svg

---------

Co-authored-by: Hana Xu <hxu@akamai.com>

* refactor: [M3-6386] - MUI v5 Migration - `Components > SelectableTableRow` (#9299)

Migrate styles and update code patterns for the SelectableTableRow component

Verify that there has been no visual regressions in `/account/service-transfers/create`

* chore: Move new OAuth e2e tests into 'core' directory (#9307)

* Move OAuth tests to core/account

* Make '<REDACTED>' default value for OAuth factory

* refactor: [M3-6361] - Add className and event type

* Refactor: [M3-6522] Chip: MUI refactor + v7 story (#9310)

* Refactor: [M3-6522] Chip: MUI refactor + story

* Refactor: [M3-6522] delete .mdx file

* Added changeset: MUI v5 - Components > Chip

* Refactor: [M3-6522] delete .mdx file

* Refactor: [M3-6522] fix broken story

* fix: [M3-6720] - Restore DBaaS engine icons (#9306)

* Pass JSX elements instead of callbacks to Select options

* Added changeset: Restore icons in DBaaS engine selection field

* Feat: [M3-6473] - Add helper text to the Add SSHKey Drawer Form (#9290)

* Feat: [M3-6473] initial commit - replace default export

* Feat: [M3-6473] Helper text and trim on blur

* Feat: [M3-6473] Cleanup

* Added changeset: Helper Text for the Add SHHKey Drawer form

* Feat: [M3-6473] Feedback

* Update packages/manager/src/features/Profile/SSHKeys/CreateSSHKeyDrawer.tsx

Co-authored-by: Mariah Jacobs <114685994+mjac0bs@users.noreply.github.com>

---------

Co-authored-by: Mariah Jacobs <114685994+mjac0bs@users.noreply.github.com>

* refactor: [M3-6359] - MUI v5 Migration - `Components > LongviewLineGraph` (#9291)

Update styles and code patterns for the LongviewLineGraph component

So, we don't have an account that has Longview setup and when I tried to run the curl command to set it up, I kept running into errors. I think the changes are minor enough that we can just check the code

* refactor: [M3-6788] - MUI v5 Migration - `Components > TextField` (#9314)

* initial `TextField` refactor

* update storybook story

* rename `Props` ➡️ `TextFieldProps`

* clean up the mdx

* fix broken storybook build

* feedback @mjac0bs

* add some defaults

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* chore: Delete old changesets from `develop` branch (#9302)

Co-authored-by: Jaalah Ramos <jaalah.ramos@gmail.com>

* refactor: [M3-6354] - MUI v5 Migration - `Components > LandingLoading` (#9282)

Co-authored-by: Jaalah Ramos <jaalah.ramos@gmail.com>

* refactor: [M3-6791] - MUI v5 Migration - `Components > Toolbar` (#9319)

* move Toolbar to the correct place and clean up exports

* Added changeset: MUI v5 Migration - Components > Toolbar

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* refactor: [M3-6793] - MUI v5 Migration - `Components > AppBar` (#9321)

* move AppBar to correct place and use named exports

* Added changeset: MUI v5 Migration - Components > AppBar

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* refactor: [M3-6195] - MUI v5 Migration - `Components > Button` (part 2) (#9325)

* delete core files and clean up exports

* Added changeset: MUI v5 Migration - Components > Button

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* fix: [M3-6638] - Object Storage > Create Access Key Drawer Layout Issue (#9296)

* fix: [M3-6638] - Object Storage > Create Access Key Drawer Layout Issue

* Added changeset: Object Storage > Create Access Key Drawer Layout Issue

* Add descriptive message

* code cleanup

* refactor: [M3-6290] - MUI v5 Migration - `Components > Accordion` (part 2) (#9320)

* update storybook and move component to correct spot

* Added changeset: MUI v5 Migration - Components > Accordion (part 2)

* futher clean up and feedback from @dwiley-akamai

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* fix: local dev server AppBarProps export  (#9334)

Co-authored-by: Banks Nussman <banks@nussman.us>

* refactor: [M3-6063] - Fix CloseAccount button

* refactor: [M3-6702] - React Query - Linodes - General clean up and refactors (#9294)

* refactor and clean up

* fix spelling for entity names

* remove more things

* match production better

* igrate off withLinodes container

* make the linodes container pull from React Query

* remove last few containers for now

* hook up search with RQ

* fix broken tests

* Added changeset: React Query - Linodes - General clean up and refactors

* remove `useLinodes` redux hook

* feedback @dwiley-akamai

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* Refactor: [M3-6522-selection-card] Selection Card: named exports and v7 story (#9327)

* Refactor: [M3-6522-selection-card] Initial commit: exports

* Refactor: [M3-6522-selection-card] New v7 story

* Added changeset: MUI v5 Migration - Components > SelectionCard

* Refactor: [M3-6522-selection-card] Add some interactivity

* refactor: [M3-6797] - MUI v5 Migration - `Components > Hidden` (#9326)

* move component and use named export

* Added changeset: MUI v5 Migration - Components > Hidden

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* refactor: [M3-6794] - MUI v5 Migration - `Components > Box` (#9322)

* move files, update exports, create Storybook story

* Added changeset: MUI v5 Migration - Components > Box

* fix storybook build

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* feat: [M3-6707] – Light/dark mode shortcut copy on the "My Settings" page (#9286)

* refactor: [M3-6798] - MUI v5 Migration - `Components > Typography` (#9328)

* initial refactor and new storybook story

* Added changeset: MUI v5 Migration - Components > Typography

* fix unit tests by updated exports

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* Revert "refactor: [M3-6063] - Fix CloseAccount button"

This reverts commit 4a49592.

* Add changes after revert of yarn.lock, cachedData

* Refactor: [M3-6522] - Update Link component export and improve Storybook story (#9313)

* Refactor: [M3-6522-link] Initial commit: remoce default export and new story

* Refactor: [M3-6522-link] argsTypes

* Refactor: [M3-6522-link] More Documntation

* Added changeset: Link component: remove default export and improved storybook story

* Refactor: [M3-6522-link] Actualy remove old mdx story

* Refactor: [M3-6522-link] feedback

* Refactor: [M3-6522-link] post rebase fix

* Refactor: [M3-6522-link] feedback 2

* Refactor: [M3-6522-link] fix bad rebase

* Fix: [M3-6800] Firewall custom port validation (#9336)

* Fix: [M3-6800] improve FW custom ports validation

* Fix: [M3-6800] increased test coverage

* Added changeset: Firewall custom ports validation

* Added changeset: Firewall custom port validation

* Fix: [M3-6800] cleanup

* Fix: [M3-6800] moaaar cleanup

* Fix: [M3-6800] better naming conventions and JSDoc

* Fix: [M3-6800] Improved feedback

* refactor: [M3-6458] - Remove old changelog scripting (#9340)

* remove changeset bot, python utils, and some shell scripts

* more script clean up

* Added changeset: Remove old changelog scripting

* clean up dependencies and test setups

* get rid of more js 😖 sorry, i can't help it

* re-add joe's script

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* fix: [M3-5577] - Disable delete button for public IP addresses (#9332)

Disable delete button for public IP addresses if it's the only IP address and display a tooltip

Check the Network tab of a Linode's details page

* chore: [M3-6666] -  Clean up for consistent spelling of "canceled" (#9335)

* Update api-v4 types

* Clean up checks and string manip for inconsistent spelling

* Added changeset: Use 'canceled' instead of 'cancelled' for EntityTransferStatus

* Forgot to commit mock canceled transfer event

* Refactor: [M3-6522-copy-tooltip] CopyTooltip: Styled component and v7 story (#9323)

* Refactor: [M3-6522-copy-tooltip] Styled component and v7 story

* Added changeset: MUI v5 Migration - Components > CopyTooltip

* Refactor: [M3-6522-copy-tooltip] feedback - missing props

* Fix: [M3-6786] ActionMenu tooltip icon color (#9352)

* Fix: [M3-6786] ActionMenu tooltip icon color

* Added changeset: ActionMenu tooltip icon color deprecation

* refactor: Remove `withLoadingAndError` and clean up 2FA components (#9318)

* remove `withLoadingAndError` and clean up 2fa

* Added changeset: Remove `withLoadingAndError` and clean up 2FA components

* remove more legacy stuff

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* Chore: [M3-6527] - Storybook update and maintenance fixes (#9330)

* Chore: [M3-6527]: Update storybook

* Chore: [M3-6527]: Add msw to loader

* Chore: [M3-6527]: Fix props forwarding for Chip component

* Chore: [M3-6527]: Yarn lock update

* Chore: [M3-6527]: Remove fix present in other PR

* refactor: [M3-6804] - MUI v5 Migration - `Components > Chip` (#9339)

* move to correct spot and update imports

* Added changeset: MUI v5 Migration - Components > Chip

* use relative import for story

* fix: add prop filter

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* fix: [M3-6177] - Only request logo once for invoice pdf (#9355)

Previously, when downloading an invoice, we would make a request for the logo image for every page of the invoice potentially causing delays for large accounts. This PR fixes that by fetching the image only once and passing that to jsPDF's addImage function

- Go to /account/billing
- In the browser dev tools, go to the network tab and filter by .png
- Download an invoice PDF and observe only 1 request made for the akamai logo
- Open the PDF and ensure that the logo is still on every page

* fix: Fix miscellaneous Cypress test flake (#9342)

* Fix flake related to intercepts that are set up too late

* Fix flake stemming from multiple instances of phrase existing on page

* fix: Fix Linode landing page delete smoke test flake (#9348)

* Wait for landing page to update before deleting next Linode

* Use Linode API SDK to create Linodes for test

* refactor: [M3-6350] - MUI v5 Migration - `Components > InlineMenuAction` (#9268)

Co-authored-by: Jaalah Ramos <jaalah.ramos@gmail.com>

* fix: [M3-6627] - Fix `cy.defer()` TypeScript errors (#9349)

* Fix cy.defer command, replace instances of cy.wrap with cy.defer

* Rename e2e.js to e2e.ts, replace cy.wrap with cy.defer

* Improve `attemptWithBackoff` error handling by listing each attempt failure error message

* Improve cy.defer log handling

* fix: [M3-6782] - Fix Third-Party Access Tokens Flaky Tests (#9354)

* chore: [M3-6777] - Rename Cypress functions and variables related to secrets (#9350)

* Rename functions and variables related to secrets, improve object storage mock utils

* Fix failing access key revoke test

* Fix mismatched error variable name in prebuild script

* test: [M3-6054] - Add Cypress test coverage for Linode Create via CLI dialog (#9351)

* Add test to assert Linode CLI snippet content, close dialog

* fix: NVM should be NVMe (#9366)

Co-authored-by: Jaalah Ramos <jaalah.ramos@gmail.com>

* refactor: [M3-6299] - MUI v5 Migration - `Components > Checkbox` (part 2) (#9338)

* update exports, remove core, fix component, new storybook story

* add basic jsdoc

* Added changeset: MUI v5 Migration - Components > Checkbox (part 2)

* feedback @dwiley-akamai

* feedback @hana-linode

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* refactor: [M3-6393] - MUI v5 - `Components > Snackbar` (#9359)

Co-authored-by: Jaalah Ramos <jaalah.ramos@gmail.com>

* refactor: [M3-6790] – MUI v5 Migration - `Components > Divider` (#9353)

* fix: [M3-6833] Replace negative lookbehind regular expression in eventMessageGenerators (#9360)

* fix: [M3-6833] Fix issue with Negative lookbehind regular expression

* Added changeset: Fix issue with notification menu crashing older safari versions

* feat: [M3-6841] - Add AGLB feature flag (#9370)

Adds AGLB feature flag 🚩

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* feat: [M3-6779] - AGLB api-v4 endpoints (#9363)

Adds initial api-v4 endpoints and types for the AGLB

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* feat: [M3-6840] - Add VPC feature flag (#9368)

Add VPC feature flag

Check that `vpc` is being returned from `useFlags()` and that it is under the feature flag tool

* feat: [M3-6722] – VPC endpoints, validation, & React Query queries (#9361)

* feat: [M3-6789] - Improve failed backup error messaging (#9364)

* Update linode_snapshot event toast

* Update backup restore and snapshot error events and toasts

* Fix styling regression for snapshot error notice

* Add backups warning for create flow with private images

* Add changeset

* Address feedback

* Add mock failed backups_restore event to be removed before merging

* Address naming and copy feedback

* Fix toast link text color in dark mode

* Revert unintentional commit to include failed event in mocks

* fix: wording in "My Profile" -> "Login and Authentication" (#9358)

**Old:**
```
To disable Google authentication and log in using your Linode credentials, click the Linode button above.
```

**New:**
```
To disable Google authentication and log in using your Cloud Manager credentials, click the Cloud Manager button above.
```

* refactor: [M3-6839] - MUI v5 Migration - `Components > Tooltip`  (#9369)

* initial toolip refactor

* Added changeset: MUI v5 Migration - Components > Tooltip

* Refactor Tooltip and convert story

* fix spelling

---------

Co-authored-by: Banks Nussman <banks@nussman.us>

* test: [M3-6505] - Add StackScript Update/Delete E2E Tests (#9315)

* M3-6505: Add StackScript Update/Delete E2E Tests

* Fixed comments

* refactor: Upgrade LaunchDarkly SDK and use anonymous users (#9285)

* Upgrade LD and remove username

* Remove unused import

* Mark all attributes private

* Added changeset: Upgrade LaunchDarkly client library

* Address feedback

* Update packages/manager/src/IdentifyUser.tsx

---------

Co-authored-by: Jaalah Ramos <125309814+jaalah-akamai@users.noreply.github.com>

* Cloud version 1.96.0, API v4 version 0.96.0, and Validation version 0.26.0

* Update changelogs

* feat: [M3-6842] - Update Metadata copy (#9374)

* add labelTooltipText prop to TextField component

* update copy

* Added changeset: Update Metadata copy

* fix unit test

* Update tests to reflect updated markup

---------

Co-authored-by: Joe D'Amore <jdamore@linode.com>

* Update Changelog for v1.97.0 release (#9378)

* fix: minor css regression account > billing history dropdowns (#9379)

Co-authored-by: Jaalah Ramos <jaalah.ramos@gmail.com>

---------

Co-authored-by: ecarrill <ecarrill@akamai.com>
Co-authored-by: cliu-akamai <126020611+cliu-akamai@users.noreply.github.com>
Co-authored-by: Banks Nussman <115251059+bnussman-akamai@users.noreply.github.com>
Co-authored-by: Banks Nussman <banks@nussman.us>
Co-authored-by: jdamore-linode <97627410+jdamore-linode@users.noreply.github.com>
Co-authored-by: Mariah Jacobs <114685994+mjac0bs@users.noreply.github.com>
Co-authored-by: Jaalah Ramos <125309814+jaalah-akamai@users.noreply.github.com>
Co-authored-by: Jaalah Ramos <jaalah.ramos@gmail.com>
Co-authored-by: hmorris3293 <morrisholdenx@gmail.com>
Co-authored-by: Hana Xu <hxu@akamai.com>
Co-authored-by: Hana Xu <115299789+hana-linode@users.noreply.github.com>
Co-authored-by: carrillo-erik <119514965+carrillo-erik@users.noreply.github.com>
Co-authored-by: cpathipa <119517080+cpathipa@users.noreply.github.com>
Co-authored-by: Dajahi Wiley <114682940+dwiley-akamai@users.noreply.github.com>
Co-authored-by: John Callahan <114753608+jcallahan-akamai@users.noreply.github.com>
Co-authored-by: Joe D'Amore <jdamore@linode.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Approved Multiple approvals and ready to merge! Missing Changeset
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants