From 20e4475c7d02dc45e3414fa034f18bd3d5a943bb Mon Sep 17 00:00:00 2001 From: pmakode-akamai Date: Wed, 2 Apr 2025 16:54:00 +0530 Subject: [PATCH 1/4] Move `getUserTimeZone` and its associated `profile` factories --- .../e2e/core/account/account-cancellation.spec.ts | 2 +- .../e2e/core/account/account-linode-managed.spec.ts | 3 +-- .../e2e/core/account/account-login-history.spec.ts | 2 +- .../cypress/e2e/core/account/display-settings.spec.ts | 2 +- .../e2e/core/account/personal-access-tokens.spec.ts | 2 +- .../e2e/core/account/security-questions.spec.ts | 4 +--- .../cypress/e2e/core/account/sms-verification.spec.ts | 2 +- .../manager/cypress/e2e/core/account/ssh-keys.spec.ts | 3 +-- .../cypress/e2e/core/account/two-factor-auth.spec.ts | 6 +----- .../cypress/e2e/core/account/user-permissions.spec.ts | 2 +- .../e2e/core/account/user-verification-banner.spec.ts | 2 +- .../e2e/core/account/users-landing-page.spec.ts | 2 +- .../e2e/core/billing/restricted-user-billing.spec.ts | 3 ++- .../e2e/core/billing/smoke-billing-activity.spec.ts | 2 +- .../core/cloudpulse/timerange-verification.spec.ts | 3 +-- .../e2e/core/databases/create-database.spec.ts | 2 +- .../e2e/core/images/images-empty-landing-page.spec.ts | 2 +- .../core/images/images-non-empty-landing-page.spec.ts | 4 ++-- .../e2e/core/images/smoke-create-image.spec.ts | 9 ++------- .../e2e/core/kubernetes/smoke-lke-create.spec.ts | 2 +- .../core/linodes/create-linode-with-ssh-key.spec.ts | 4 ++-- .../cypress/e2e/core/linodes/create-linode.spec.ts | 2 +- .../core/linodes/smoke-linode-landing-table.spec.ts | 7 +++++-- .../e2e/core/managed/managed-navigation.spec.ts | 2 +- .../core/objectStorage/enable-object-storage.spec.ts | 3 +-- .../objectStorageGen2/bucket-access-keys-gen2.spec.ts | 2 +- .../core/objectStorageGen2/bucket-create-gen2.spec.ts | 3 +-- .../e2e/core/parentChild/account-switching.spec.ts | 2 +- .../e2e/core/parentChild/token-expiration.spec.ts | 7 ++----- .../cypress/e2e/core/parentChild/token-scopes.spec.ts | 7 ++----- .../cypress/e2e/core/volumes/create-volume.spec.ts | 8 ++------ .../components/AccessPanel/UserSSHKeyPanel.test.tsx | 2 +- .../manager/src/components/Avatar/Avatar.test.tsx | 2 +- .../DateTimeDisplay/DateTimeDisplay.test.tsx | 5 ++++- .../src/dev-tools/components/ExtraPresetProfile.tsx | 2 +- packages/manager/src/factories/grants.ts | 3 ++- packages/manager/src/factories/index.ts | 1 - .../src/features/Account/CloseAccountSetting.test.tsx | 2 +- .../features/Account/ObjectStorageSettings.test.tsx | 3 ++- .../src/features/Account/Quotas/utils.test.tsx | 2 +- .../src/features/Account/SwitchAccountDrawer.test.tsx | 2 +- .../Account/SwitchAccounts/ChildAccountList.test.tsx | 3 ++- .../manager/src/features/Backups/BackupsCTA.test.tsx | 4 ++-- .../ContactInfoPanel/ContactInformation.test.tsx | 2 +- .../PaymentInfoPanel/PaymentInformation.test.tsx | 3 ++- .../IAM/Users/UserDetails/DeleteUserPanel.test.tsx | 3 ++- .../IAM/Users/UserDetails/UserEmailPanel.test.tsx | 3 ++- .../features/IAM/Users/UsersTable/UserRow.test.tsx | 2 +- .../IAM/Users/UsersTable/UsersActionMenu.test.tsx | 2 +- .../Images/ImagesLanding/ImagesLanding.test.tsx | 3 ++- .../ImagesLanding/ImagesLandingEmptyState.test.tsx | 3 ++- .../Linodes/LinodeCreate/Addons/Backups.test.tsx | 4 ++-- .../Linodes/LinodeCreate/Addons/PrivateIP.test.tsx | 3 +-- .../Linodes/LinodeCreate/Details/Details.test.tsx | 3 ++- .../src/features/Linodes/LinodeCreate/Region.test.tsx | 3 ++- .../features/Linodes/LinodeCreate/Security.test.tsx | 8 ++++++-- .../LinodeBackup/ScheduleSettings.test.tsx | 3 +-- .../LinodesDetail/LinodeBackup/ScheduleSettings.tsx | 4 +--- .../Longview/LongviewLanding/LongviewPlans.test.tsx | 11 ++++------- .../ManagedDashboardCard/ManagedChartPanel.tsx | 4 ++-- .../src/features/Managed/Monitors/IssueCalendar.tsx | 7 ++++--- .../NodeBalancerSummary/TablesPanel.tsx | 3 +-- .../BucketDetail/ObjectDetailsDrawer.test.tsx | 2 +- .../BucketLanding/BucketDetailsDrawer.test.tsx | 2 +- .../Profile/APITokens/CreateAPITokenDrawer.test.tsx | 2 +- .../Profile/APITokens/ViewAPITokenDrawer.test.tsx | 3 ++- .../Profile/DisplaySettings/EmailForm.test.tsx | 2 +- .../Profile/DisplaySettings/TimezoneForm.test.tsx | 2 +- .../Profile/DisplaySettings/UsernameForm.test.tsx | 2 +- .../Profile/SSHKeys/CreateSSHKeyDrawer.test.tsx | 4 ++-- .../src/features/Profile/SSHKeys/SSHKeys.test.tsx | 2 +- .../features/Profile/Settings/Notifications.test.tsx | 2 +- .../src/features/TopMenu/UserMenu/UserMenu.test.tsx | 3 ++- .../src/features/TopMenu/UserMenu/utils.test.ts | 6 +++--- .../Users/UserProfile/UserEmailPanel.test.tsx | 3 ++- packages/manager/src/features/Users/UserRow.test.tsx | 2 +- .../Volumes/VolumesLandingEmptyState.test.tsx | 3 ++- .../src/mocks/presets/extra/account/customProfile.ts | 2 +- packages/manager/src/mocks/serverHandlers.ts | 4 ++-- packages/manager/src/request.test.tsx | 2 +- packages/manager/src/utilities/formatDate.ts | 3 +-- packages/utilities/src/factories/index.ts | 1 + .../{manager => utilities}/src/factories/profile.ts | 2 +- .../src/helpers}/getUserTimezone.test.ts | 8 +++++--- .../src/helpers}/getUserTimezone.ts | 2 +- packages/utilities/src/helpers/index.ts | 3 ++- 86 files changed, 136 insertions(+), 142 deletions(-) rename packages/{manager => utilities}/src/factories/profile.ts (98%) rename packages/{manager/src/utilities => utilities/src/helpers}/getUserTimezone.test.ts (86%) rename packages/{manager/src/utilities => utilities/src/helpers}/getUserTimezone.ts (88%) diff --git a/packages/manager/cypress/e2e/core/account/account-cancellation.spec.ts b/packages/manager/cypress/e2e/core/account/account-cancellation.spec.ts index 728ea5695d7..78797cd18bb 100644 --- a/packages/manager/cypress/e2e/core/account/account-cancellation.spec.ts +++ b/packages/manager/cypress/e2e/core/account/account-cancellation.spec.ts @@ -2,6 +2,7 @@ * @file Integration tests for Cloud Manager account cancellation flows. */ +import { profileFactory } from '@linode/utilities'; import { cancellationDataLossWarning, cancellationDialogTitle, @@ -22,7 +23,6 @@ import { } from 'support/util/random'; import { accountFactory } from 'src/factories/account'; -import { profileFactory } from 'src/factories/profile'; import { CHILD_USER_CLOSE_ACCOUNT_TOOLTIP_TEXT, PARENT_USER_CLOSE_ACCOUNT_TOOLTIP_TEXT, diff --git a/packages/manager/cypress/e2e/core/account/account-linode-managed.spec.ts b/packages/manager/cypress/e2e/core/account/account-linode-managed.spec.ts index 118eb70095d..8115f263497 100644 --- a/packages/manager/cypress/e2e/core/account/account-linode-managed.spec.ts +++ b/packages/manager/cypress/e2e/core/account/account-linode-managed.spec.ts @@ -2,7 +2,7 @@ * @file Integration tests for Cloud Manager account enable Linode Managed flows. */ -import { linodeFactory } from '@linode/utilities'; +import { linodeFactory, profileFactory } from '@linode/utilities'; import { visitUrlWithManagedDisabled, visitUrlWithManagedEnabled, @@ -22,7 +22,6 @@ import { ui } from 'support/ui'; import { chooseRegion } from 'support/util/regions'; import { accountFactory } from 'src/factories/account'; -import { profileFactory } from 'src/factories/profile'; import type { Linode } from '@linode/api-v4'; diff --git a/packages/manager/cypress/e2e/core/account/account-login-history.spec.ts b/packages/manager/cypress/e2e/core/account/account-login-history.spec.ts index b53a18ef7d0..e18840149e9 100644 --- a/packages/manager/cypress/e2e/core/account/account-login-history.spec.ts +++ b/packages/manager/cypress/e2e/core/account/account-login-history.spec.ts @@ -2,6 +2,7 @@ * @file Integration tests for Cloud Manager account login history flows. */ +import { profileFactory } from '@linode/utilities'; import { loginEmptyStateMessageText, loginHelperText, @@ -9,7 +10,6 @@ import { import { mockGetAccountLogins } from 'support/intercepts/account'; import { mockGetProfile } from 'support/intercepts/profile'; -import { profileFactory } from 'src/factories'; import { accountLoginFactory } from 'src/factories/accountLogin'; import { PARENT_USER } from 'src/features/Account/constants'; import { formatDate } from 'src/utilities/formatDate'; diff --git a/packages/manager/cypress/e2e/core/account/display-settings.spec.ts b/packages/manager/cypress/e2e/core/account/display-settings.spec.ts index 64f950dd149..e5b0e1655c6 100644 --- a/packages/manager/cypress/e2e/core/account/display-settings.spec.ts +++ b/packages/manager/cypress/e2e/core/account/display-settings.spec.ts @@ -1,4 +1,4 @@ -import { profileFactory } from '@src/factories'; +import { profileFactory } from '@linode/utilities'; import { getProfile } from 'support/api/account'; import { mockUpdateUsername } from 'support/intercepts/account'; import { interceptGetProfile } from 'support/intercepts/profile'; diff --git a/packages/manager/cypress/e2e/core/account/personal-access-tokens.spec.ts b/packages/manager/cypress/e2e/core/account/personal-access-tokens.spec.ts index 81d1f357097..d7684a0a28d 100644 --- a/packages/manager/cypress/e2e/core/account/personal-access-tokens.spec.ts +++ b/packages/manager/cypress/e2e/core/account/personal-access-tokens.spec.ts @@ -2,6 +2,7 @@ * @file Integration tests for personal access token CRUD operations. */ +import { profileFactory } from '@linode/utilities'; import { mockCreatePersonalAccessToken, mockGetAppTokens, @@ -14,7 +15,6 @@ import { ui } from 'support/ui'; import { randomLabel, randomString } from 'support/util/random'; import { appTokenFactory } from 'src/factories/oauth'; -import { profileFactory } from 'src/factories/profile'; import { PROXY_USER_RESTRICTED_TOOLTIP_TEXT } from 'src/features/Account/constants'; import type { Token } from '@linode/api-v4'; diff --git a/packages/manager/cypress/e2e/core/account/security-questions.spec.ts b/packages/manager/cypress/e2e/core/account/security-questions.spec.ts index 3d161c672b4..f2746a5377e 100644 --- a/packages/manager/cypress/e2e/core/account/security-questions.spec.ts +++ b/packages/manager/cypress/e2e/core/account/security-questions.spec.ts @@ -2,6 +2,7 @@ * @file Integration tests for account security questions. */ +import { profileFactory, securityQuestionsFactory } from '@linode/utilities'; import { mockGetProfile, mockGetSecurityQuestions, @@ -9,9 +10,6 @@ import { } from 'support/intercepts/profile'; import { ui } from 'support/ui'; -import { securityQuestionsFactory } from 'src/factories/profile'; -import { profileFactory } from 'src/factories/profile'; - /** * Finds the "Security Questions" section on the profile auth page. * diff --git a/packages/manager/cypress/e2e/core/account/sms-verification.spec.ts b/packages/manager/cypress/e2e/core/account/sms-verification.spec.ts index 6a5ed1aed43..74f59ac48a7 100644 --- a/packages/manager/cypress/e2e/core/account/sms-verification.spec.ts +++ b/packages/manager/cypress/e2e/core/account/sms-verification.spec.ts @@ -2,6 +2,7 @@ * @file Integration tests for SMS phone verification. */ +import { profileFactory } from '@linode/utilities'; import { mockGetProfile, mockSendVerificationCode, @@ -15,7 +16,6 @@ import { randomPhoneNumber, } from 'support/util/random'; -import { profileFactory } from 'src/factories/profile'; import { getFormattedNumber } from 'src/features/Profile/AuthenticationSettings/PhoneVerification/helpers'; describe('SMS phone verification', () => { diff --git a/packages/manager/cypress/e2e/core/account/ssh-keys.spec.ts b/packages/manager/cypress/e2e/core/account/ssh-keys.spec.ts index 5afeac8936c..cf24e9644d9 100644 --- a/packages/manager/cypress/e2e/core/account/ssh-keys.spec.ts +++ b/packages/manager/cypress/e2e/core/account/ssh-keys.spec.ts @@ -1,3 +1,4 @@ +import { sshKeyFactory } from '@linode/utilities'; import { sshFormatErrorMessage } from 'support/constants/account'; import { mockCreateSSHKey, @@ -9,8 +10,6 @@ import { import { ui } from 'support/ui'; import { randomLabel, randomString } from 'support/util/random'; -import { sshKeyFactory } from 'src/factories'; - describe('SSH keys', () => { /* * - Vaildates SSH key creation flow using mock data. diff --git a/packages/manager/cypress/e2e/core/account/two-factor-auth.spec.ts b/packages/manager/cypress/e2e/core/account/two-factor-auth.spec.ts index 9f1e945cb5a..75001e64ccf 100644 --- a/packages/manager/cypress/e2e/core/account/two-factor-auth.spec.ts +++ b/packages/manager/cypress/e2e/core/account/two-factor-auth.spec.ts @@ -2,6 +2,7 @@ * @file Integration tests for account two-factor authentication functionality. */ +import { profileFactory, securityQuestionsFactory } from '@linode/utilities'; import { mockConfirmTwoFactorAuth, mockDisableTwoFactorAuth, @@ -17,11 +18,6 @@ import { randomString, } from 'support/util/random'; -import { - profileFactory, - securityQuestionsFactory, -} from 'src/factories/profile'; - import type { SecurityQuestionsData } from '@linode/api-v4'; /** diff --git a/packages/manager/cypress/e2e/core/account/user-permissions.spec.ts b/packages/manager/cypress/e2e/core/account/user-permissions.spec.ts index ccaa315dfa9..098053018b4 100644 --- a/packages/manager/cypress/e2e/core/account/user-permissions.spec.ts +++ b/packages/manager/cypress/e2e/core/account/user-permissions.spec.ts @@ -1,4 +1,4 @@ -import { profileFactory } from '@src/factories'; +import { profileFactory } from '@linode/utilities'; import { accountUserFactory } from '@src/factories/accountUsers'; import { grantsFactory } from '@src/factories/grants'; import { userPermissionsGrants } from 'support/constants/user-permissions'; diff --git a/packages/manager/cypress/e2e/core/account/user-verification-banner.spec.ts b/packages/manager/cypress/e2e/core/account/user-verification-banner.spec.ts index d2547970203..d3b5cc0a771 100644 --- a/packages/manager/cypress/e2e/core/account/user-verification-banner.spec.ts +++ b/packages/manager/cypress/e2e/core/account/user-verification-banner.spec.ts @@ -1,4 +1,4 @@ -import { profileFactory, securityQuestionsFactory } from '@src/factories'; +import { profileFactory, securityQuestionsFactory } from '@linode/utilities'; import { accountUserFactory } from '@src/factories/accountUsers'; import { grantsFactory } from '@src/factories/grants'; import { verificationBannerNotice } from 'support/constants/user'; diff --git a/packages/manager/cypress/e2e/core/account/users-landing-page.spec.ts b/packages/manager/cypress/e2e/core/account/users-landing-page.spec.ts index af4179b74c5..762310df69f 100644 --- a/packages/manager/cypress/e2e/core/account/users-landing-page.spec.ts +++ b/packages/manager/cypress/e2e/core/account/users-landing-page.spec.ts @@ -1,4 +1,4 @@ -import { profileFactory } from '@src/factories'; +import { profileFactory } from '@linode/utilities'; import { accountUserFactory } from '@src/factories/accountUsers'; import { grantsFactory } from '@src/factories/grants'; import { diff --git a/packages/manager/cypress/e2e/core/billing/restricted-user-billing.spec.ts b/packages/manager/cypress/e2e/core/billing/restricted-user-billing.spec.ts index 4c55cefadfa..e47db4f1307 100644 --- a/packages/manager/cypress/e2e/core/billing/restricted-user-billing.spec.ts +++ b/packages/manager/cypress/e2e/core/billing/restricted-user-billing.spec.ts @@ -2,7 +2,8 @@ * @file Integration tests for restricted user billing flows. */ -import { paymentMethodFactory, profileFactory } from '@src/factories'; +import { profileFactory } from '@linode/utilities'; +import { paymentMethodFactory } from '@src/factories'; import { accountUserFactory } from '@src/factories/accountUsers'; import { grantsFactory } from '@src/factories/grants'; import { mockGetPaymentMethods, mockGetUser } from 'support/intercepts/account'; diff --git a/packages/manager/cypress/e2e/core/billing/smoke-billing-activity.spec.ts b/packages/manager/cypress/e2e/core/billing/smoke-billing-activity.spec.ts index 9189a234d17..ad32f3f778d 100644 --- a/packages/manager/cypress/e2e/core/billing/smoke-billing-activity.spec.ts +++ b/packages/manager/cypress/e2e/core/billing/smoke-billing-activity.spec.ts @@ -1,5 +1,5 @@ import { getProfile } from '@linode/api-v4'; -import { profileFactory } from '@src/factories'; +import { profileFactory } from '@linode/utilities'; import { formatDate } from '@src/utilities/formatDate'; import { DateTime } from 'luxon'; import { authenticate } from 'support/api/authentication'; diff --git a/packages/manager/cypress/e2e/core/cloudpulse/timerange-verification.spec.ts b/packages/manager/cypress/e2e/core/cloudpulse/timerange-verification.spec.ts index 17d5a0d5f84..af475bfb926 100644 --- a/packages/manager/cypress/e2e/core/cloudpulse/timerange-verification.spec.ts +++ b/packages/manager/cypress/e2e/core/cloudpulse/timerange-verification.spec.ts @@ -1,7 +1,7 @@ /** * @file Integration Tests for CloudPulse Custom and Preset Verification */ -import { regionFactory } from '@linode/utilities'; +import { profileFactory, regionFactory } from '@linode/utilities'; import { DateTime } from 'luxon'; import { widgetDetails } from 'support/constants/widgets'; import { mockGetAccount } from 'support/intercepts/account'; @@ -29,7 +29,6 @@ import { dashboardFactory, dashboardMetricFactory, databaseFactory, - profileFactory, widgetFactory, } from 'src/factories'; import { convertToGmt } from 'src/features/CloudPulse/Utils/CloudPulseDateTimePickerUtils'; diff --git a/packages/manager/cypress/e2e/core/databases/create-database.spec.ts b/packages/manager/cypress/e2e/core/databases/create-database.spec.ts index d053ff241fb..b2405d44b2d 100644 --- a/packages/manager/cypress/e2e/core/databases/create-database.spec.ts +++ b/packages/manager/cypress/e2e/core/databases/create-database.spec.ts @@ -1,3 +1,4 @@ +import { profileFactory } from '@linode/utilities'; import { databaseConfigurations, mockDatabaseEngineTypes, @@ -25,7 +26,6 @@ import { databaseFactory, eventFactory, grantsFactory, - profileFactory, } from 'src/factories'; import type { Database } from '@linode/api-v4'; diff --git a/packages/manager/cypress/e2e/core/images/images-empty-landing-page.spec.ts b/packages/manager/cypress/e2e/core/images/images-empty-landing-page.spec.ts index 49a4a3e3665..139652ad412 100644 --- a/packages/manager/cypress/e2e/core/images/images-empty-landing-page.spec.ts +++ b/packages/manager/cypress/e2e/core/images/images-empty-landing-page.spec.ts @@ -1,4 +1,4 @@ -import { profileFactory } from '@src/factories'; +import { profileFactory } from '@linode/utilities'; import { accountUserFactory } from '@src/factories/accountUsers'; import { grantsFactory } from '@src/factories/grants'; import { mockGetUser } from 'support/intercepts/account'; diff --git a/packages/manager/cypress/e2e/core/images/images-non-empty-landing-page.spec.ts b/packages/manager/cypress/e2e/core/images/images-non-empty-landing-page.spec.ts index 394ebe42563..b9a0274f22f 100644 --- a/packages/manager/cypress/e2e/core/images/images-non-empty-landing-page.spec.ts +++ b/packages/manager/cypress/e2e/core/images/images-non-empty-landing-page.spec.ts @@ -1,3 +1,4 @@ +import { profileFactory } from '@linode/utilities'; import { mockGetUser } from 'support/intercepts/account'; import { mockGetAllImages } from 'support/intercepts/images'; import { @@ -7,10 +8,9 @@ import { import { ui } from 'support/ui'; import { randomLabel } from 'support/util/random'; +import { imageFactory } from 'src/factories'; import { grantsFactory } from 'src/factories'; -import { profileFactory } from 'src/factories'; import { accountUserFactory } from 'src/factories'; -import { imageFactory } from 'src/factories'; import type { Image } from '@linode/api-v4'; diff --git a/packages/manager/cypress/e2e/core/images/smoke-create-image.spec.ts b/packages/manager/cypress/e2e/core/images/smoke-create-image.spec.ts index 00d9f4c319a..d46157d4c6c 100644 --- a/packages/manager/cypress/e2e/core/images/smoke-create-image.spec.ts +++ b/packages/manager/cypress/e2e/core/images/smoke-create-image.spec.ts @@ -1,4 +1,4 @@ -import { linodeFactory } from '@linode/utilities'; +import { linodeFactory, profileFactory } from '@linode/utilities'; import { mockGetUser } from 'support/intercepts/account'; import { mockGetEvents } from 'support/intercepts/events'; import { mockCreateImage } from 'support/intercepts/images'; @@ -10,12 +10,7 @@ import { import { ui } from 'support/ui'; import { randomLabel, randomNumber, randomPhrase } from 'support/util/random'; -import { - accountUserFactory, - eventFactory, - grantsFactory, - profileFactory, -} from 'src/factories'; +import { accountUserFactory, eventFactory, grantsFactory } from 'src/factories'; import { linodeDiskFactory } from 'src/factories/disk'; import { imageFactory } from 'src/factories/images'; diff --git a/packages/manager/cypress/e2e/core/kubernetes/smoke-lke-create.spec.ts b/packages/manager/cypress/e2e/core/kubernetes/smoke-lke-create.spec.ts index c32b7eb1d4e..f6b99c5ab16 100644 --- a/packages/manager/cypress/e2e/core/kubernetes/smoke-lke-create.spec.ts +++ b/packages/manager/cypress/e2e/core/kubernetes/smoke-lke-create.spec.ts @@ -1,8 +1,8 @@ +import { profileFactory } from '@linode/utilities'; import { accountUserFactory, grantsFactory, kubernetesClusterFactory, - profileFactory, } from '@src/factories'; import { mockGetUser } from 'support/intercepts/account'; import { mockCreateCluster } from 'support/intercepts/lke'; diff --git a/packages/manager/cypress/e2e/core/linodes/create-linode-with-ssh-key.spec.ts b/packages/manager/cypress/e2e/core/linodes/create-linode-with-ssh-key.spec.ts index f3812319191..fac8dd00c69 100644 --- a/packages/manager/cypress/e2e/core/linodes/create-linode-with-ssh-key.spec.ts +++ b/packages/manager/cypress/e2e/core/linodes/create-linode-with-ssh-key.spec.ts @@ -1,4 +1,4 @@ -import { linodeFactory } from '@linode/utilities'; +import { linodeFactory, sshKeyFactory } from '@linode/utilities'; import { mockGetUser, mockGetUsers } from 'support/intercepts/account'; import { mockCreateLinode } from 'support/intercepts/linodes'; import { mockCreateSSHKey } from 'support/intercepts/profile'; @@ -7,7 +7,7 @@ import { linodeCreatePage } from 'support/ui/pages'; import { randomLabel, randomNumber, randomString } from 'support/util/random'; import { chooseRegion } from 'support/util/regions'; -import { accountUserFactory, sshKeyFactory } from 'src/factories'; +import { accountUserFactory } from 'src/factories'; describe('Create Linode with SSH Key', () => { /* diff --git a/packages/manager/cypress/e2e/core/linodes/create-linode.spec.ts b/packages/manager/cypress/e2e/core/linodes/create-linode.spec.ts index 357cb202f2b..f5f0cff79a4 100644 --- a/packages/manager/cypress/e2e/core/linodes/create-linode.spec.ts +++ b/packages/manager/cypress/e2e/core/linodes/create-linode.spec.ts @@ -5,6 +5,7 @@ import { linodeFactory, linodeTypeFactory, + profileFactory, regionFactory, } from '@linode/utilities'; import { authenticate } from 'support/api/authentication'; @@ -34,7 +35,6 @@ import { accountFactory, accountUserFactory, grantsFactory, - profileFactory, } from 'src/factories'; let username: string; diff --git a/packages/manager/cypress/e2e/core/linodes/smoke-linode-landing-table.spec.ts b/packages/manager/cypress/e2e/core/linodes/smoke-linode-landing-table.spec.ts index b67e42ff902..7c878913a8c 100644 --- a/packages/manager/cypress/e2e/core/linodes/smoke-linode-landing-table.spec.ts +++ b/packages/manager/cypress/e2e/core/linodes/smoke-linode-landing-table.spec.ts @@ -1,6 +1,9 @@ /* eslint-disable sonarjs/no-duplicate-string */ -import { linodeFactory } from '@linode/utilities'; -import { profileFactory, userPreferencesFactory } from '@src/factories'; +import { + linodeFactory, + profileFactory, + userPreferencesFactory, +} from '@linode/utilities'; import { accountSettingsFactory } from '@src/factories/accountSettings'; import { accountUserFactory } from '@src/factories/accountUsers'; import { grantsFactory } from '@src/factories/grants'; diff --git a/packages/manager/cypress/e2e/core/managed/managed-navigation.spec.ts b/packages/manager/cypress/e2e/core/managed/managed-navigation.spec.ts index 9df4cefa15e..07ea0214e64 100644 --- a/packages/manager/cypress/e2e/core/managed/managed-navigation.spec.ts +++ b/packages/manager/cypress/e2e/core/managed/managed-navigation.spec.ts @@ -2,6 +2,7 @@ * @file Integration tests for Managed navigation. */ +import { userPreferencesFactory } from '@linode/utilities'; import { managedAccount, nonManagedAccount, @@ -26,7 +27,6 @@ import { managedIssueFactory, monitorFactory, } from 'src/factories/managed'; -import { userPreferencesFactory } from 'src/factories/profile'; import type { UserPreferences } from '@linode/api-v4'; diff --git a/packages/manager/cypress/e2e/core/objectStorage/enable-object-storage.spec.ts b/packages/manager/cypress/e2e/core/objectStorage/enable-object-storage.spec.ts index 78dd831ccd1..fbf74587e72 100644 --- a/packages/manager/cypress/e2e/core/objectStorage/enable-object-storage.spec.ts +++ b/packages/manager/cypress/e2e/core/objectStorage/enable-object-storage.spec.ts @@ -1,13 +1,12 @@ /** * @file Cypress integration tests for OBJ enrollment and cancellation. */ -import { regionFactory } from '@linode/utilities'; +import { profileFactory, regionFactory } from '@linode/utilities'; import { accountFactory, accountSettingsFactory, objectStorageClusterFactory, objectStorageKeyFactory, - profileFactory, } from '@src/factories'; import { mockGetAccount, diff --git a/packages/manager/cypress/e2e/core/objectStorageGen2/bucket-access-keys-gen2.spec.ts b/packages/manager/cypress/e2e/core/objectStorageGen2/bucket-access-keys-gen2.spec.ts index 1141986b61b..b1b7be3ce68 100644 --- a/packages/manager/cypress/e2e/core/objectStorageGen2/bucket-access-keys-gen2.spec.ts +++ b/packages/manager/cypress/e2e/core/objectStorageGen2/bucket-access-keys-gen2.spec.ts @@ -1,3 +1,4 @@ +import { profileFactory } from '@linode/utilities'; import { mockGetAccount } from 'support/intercepts/account'; import { mockAppendFeatureFlags } from 'support/intercepts/feature-flags'; import { mockGetAccessKeys } from 'support/intercepts/object-storage'; @@ -5,7 +6,6 @@ import { mockGetProfile } from 'support/intercepts/profile'; import { ui } from 'support/ui'; import { accountFactory, objectStorageKeyFactory } from 'src/factories'; -import { profileFactory } from 'src/factories/profile'; describe('Object Storage gen2 access keys tests', () => { /** diff --git a/packages/manager/cypress/e2e/core/objectStorageGen2/bucket-create-gen2.spec.ts b/packages/manager/cypress/e2e/core/objectStorageGen2/bucket-create-gen2.spec.ts index 02d531df972..5592400f299 100644 --- a/packages/manager/cypress/e2e/core/objectStorageGen2/bucket-create-gen2.spec.ts +++ b/packages/manager/cypress/e2e/core/objectStorageGen2/bucket-create-gen2.spec.ts @@ -1,4 +1,4 @@ -import { regionFactory } from '@linode/utilities'; +import { profileFactory, regionFactory } from '@linode/utilities'; import { mockGetAccount } from 'support/intercepts/account'; import { mockAppendFeatureFlags } from 'support/intercepts/feature-flags'; import { @@ -21,7 +21,6 @@ import { objectStorageBucketFactoryGen2, objectStorageEndpointsFactory, } from 'src/factories'; -import { profileFactory } from 'src/factories/profile'; import type { ACLType, ObjectStorageEndpoint } from '@linode/api-v4'; diff --git a/packages/manager/cypress/e2e/core/parentChild/account-switching.spec.ts b/packages/manager/cypress/e2e/core/parentChild/account-switching.spec.ts index 1f5383399ad..271235aa07f 100644 --- a/packages/manager/cypress/e2e/core/parentChild/account-switching.spec.ts +++ b/packages/manager/cypress/e2e/core/parentChild/account-switching.spec.ts @@ -1,8 +1,8 @@ +import { profileFactory } from '@linode/utilities'; import { accountFactory, appTokenFactory, paymentMethodFactory, - profileFactory, } from '@src/factories'; import { accountUserFactory } from '@src/factories/accountUsers'; import { grantsFactory } from '@src/factories/grants'; diff --git a/packages/manager/cypress/e2e/core/parentChild/token-expiration.spec.ts b/packages/manager/cypress/e2e/core/parentChild/token-expiration.spec.ts index 00b1652fa2a..18227d3bce4 100644 --- a/packages/manager/cypress/e2e/core/parentChild/token-expiration.spec.ts +++ b/packages/manager/cypress/e2e/core/parentChild/token-expiration.spec.ts @@ -1,3 +1,4 @@ +import { profileFactory } from '@linode/utilities'; import { DateTime } from 'luxon'; import { mockGetAccount, @@ -8,11 +9,7 @@ import { mockGetProfile } from 'support/intercepts/profile'; import { ui } from 'support/ui'; import { randomLabel, randomString } from 'support/util/random'; -import { - accountFactory, - accountUserFactory, - profileFactory, -} from 'src/factories'; +import { accountFactory, accountUserFactory } from 'src/factories'; const mockChildAccount = accountFactory.build({ company: 'Partner Company', diff --git a/packages/manager/cypress/e2e/core/parentChild/token-scopes.spec.ts b/packages/manager/cypress/e2e/core/parentChild/token-scopes.spec.ts index 48ab9549bc6..5547bd1a262 100644 --- a/packages/manager/cypress/e2e/core/parentChild/token-scopes.spec.ts +++ b/packages/manager/cypress/e2e/core/parentChild/token-scopes.spec.ts @@ -1,8 +1,5 @@ -import { - accountFactory, - appTokenFactory, - profileFactory, -} from '@src/factories'; +import { profileFactory } from '@linode/utilities'; +import { accountFactory, appTokenFactory } from '@src/factories'; import { accountUserFactory } from '@src/factories/accountUsers'; import { DateTime } from 'luxon'; import { diff --git a/packages/manager/cypress/e2e/core/volumes/create-volume.spec.ts b/packages/manager/cypress/e2e/core/volumes/create-volume.spec.ts index 8a12ff4f8ee..df55d1fbab8 100644 --- a/packages/manager/cypress/e2e/core/volumes/create-volume.spec.ts +++ b/packages/manager/cypress/e2e/core/volumes/create-volume.spec.ts @@ -1,9 +1,5 @@ -import { createLinodeRequestFactory } from '@linode/utilities'; -import { - accountUserFactory, - grantsFactory, - profileFactory, -} from '@src/factories'; +import { createLinodeRequestFactory, profileFactory } from '@linode/utilities'; +import { accountUserFactory, grantsFactory } from '@src/factories'; import { authenticate } from 'support/api/authentication'; import { entityTag } from 'support/constants/cypress'; import { mockGetUser } from 'support/intercepts/account'; diff --git a/packages/manager/src/components/AccessPanel/UserSSHKeyPanel.test.tsx b/packages/manager/src/components/AccessPanel/UserSSHKeyPanel.test.tsx index d271b141c43..6cc350e05aa 100644 --- a/packages/manager/src/components/AccessPanel/UserSSHKeyPanel.test.tsx +++ b/packages/manager/src/components/AccessPanel/UserSSHKeyPanel.test.tsx @@ -1,8 +1,8 @@ +import { profileFactory, sshKeyFactory } from '@linode/utilities'; import { waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import * as React from 'react'; -import { profileFactory, sshKeyFactory } from 'src/factories'; import { accountUserFactory } from 'src/factories/accountUsers'; import { makeResourcePage } from 'src/mocks/serverHandlers'; import { HttpResponse, http, server } from 'src/mocks/testServer'; diff --git a/packages/manager/src/components/Avatar/Avatar.test.tsx b/packages/manager/src/components/Avatar/Avatar.test.tsx index bbd256aa30e..2ef7c70fd7d 100644 --- a/packages/manager/src/components/Avatar/Avatar.test.tsx +++ b/packages/manager/src/components/Avatar/Avatar.test.tsx @@ -1,6 +1,6 @@ +import { profileFactory } from '@linode/utilities'; import * as React from 'react'; -import { profileFactory } from 'src/factories/profile'; import { renderWithTheme } from 'src/utilities/testHelpers'; import { Avatar } from './Avatar'; diff --git a/packages/manager/src/components/DateTimeDisplay/DateTimeDisplay.test.tsx b/packages/manager/src/components/DateTimeDisplay/DateTimeDisplay.test.tsx index 86c393f0c56..e6acec85550 100644 --- a/packages/manager/src/components/DateTimeDisplay/DateTimeDisplay.test.tsx +++ b/packages/manager/src/components/DateTimeDisplay/DateTimeDisplay.test.tsx @@ -4,7 +4,10 @@ import * as React from 'react'; import { ISO_DATETIME_NO_TZ_FORMAT } from 'src/constants'; import { renderWithTheme } from 'src/utilities/testHelpers'; -import { DateTimeDisplay, DateTimeDisplayProps } from './DateTimeDisplay'; +import { DateTimeDisplay } from './DateTimeDisplay'; + +import type { DateTimeDisplayProps } from './DateTimeDisplay'; + vi.mock('../../utilities/getUserTimezone'); const APIDate = '2018-07-20T04:23:17'; diff --git a/packages/manager/src/dev-tools/components/ExtraPresetProfile.tsx b/packages/manager/src/dev-tools/components/ExtraPresetProfile.tsx index 317810062f3..7d16ed10b41 100644 --- a/packages/manager/src/dev-tools/components/ExtraPresetProfile.tsx +++ b/packages/manager/src/dev-tools/components/ExtraPresetProfile.tsx @@ -1,7 +1,7 @@ import { Dialog } from '@linode/ui'; +import { profileFactory } from '@linode/utilities'; import * as React from 'react'; -import { profileFactory } from 'src/factories'; import { extraMockPresets } from 'src/mocks/presets'; import { setCustomProfileData } from 'src/mocks/presets/extra/account/customProfile'; diff --git a/packages/manager/src/factories/grants.ts b/packages/manager/src/factories/grants.ts index 2e296077eab..ed74bb0eab5 100644 --- a/packages/manager/src/factories/grants.ts +++ b/packages/manager/src/factories/grants.ts @@ -1,6 +1,7 @@ -import { Grant, Grants } from '@linode/api-v4/lib/account'; import { Factory } from '@linode/utilities'; +import type { Grant, Grants } from '@linode/api-v4/lib/account'; + export const grantFactory = Factory.Sync.makeFactory({ id: Factory.each((i) => i), label: Factory.each((i) => `entity-${i}`), diff --git a/packages/manager/src/factories/index.ts b/packages/manager/src/factories/index.ts index 1532384e897..b9eb65f419c 100644 --- a/packages/manager/src/factories/index.ts +++ b/packages/manager/src/factories/index.ts @@ -34,7 +34,6 @@ export * from './oauth'; export * from './objectStorage'; export * from './placementGroups'; export * from './preferences'; -export * from './profile'; export * from './promotionalOffer'; export * from './stackscripts'; export * from './statusPage'; diff --git a/packages/manager/src/features/Account/CloseAccountSetting.test.tsx b/packages/manager/src/features/Account/CloseAccountSetting.test.tsx index bedbedcc8f9..813693cc55b 100644 --- a/packages/manager/src/features/Account/CloseAccountSetting.test.tsx +++ b/packages/manager/src/features/Account/CloseAccountSetting.test.tsx @@ -1,7 +1,7 @@ +import { profileFactory } from '@linode/utilities'; import { fireEvent, waitFor } from '@testing-library/react'; import * as React from 'react'; -import { profileFactory } from 'src/factories'; import { renderWithTheme } from 'src/utilities/testHelpers'; import CloseAccountSetting from './CloseAccountSetting'; diff --git a/packages/manager/src/features/Account/ObjectStorageSettings.test.tsx b/packages/manager/src/features/Account/ObjectStorageSettings.test.tsx index 752770ef889..d505f431982 100644 --- a/packages/manager/src/features/Account/ObjectStorageSettings.test.tsx +++ b/packages/manager/src/features/Account/ObjectStorageSettings.test.tsx @@ -1,7 +1,8 @@ +import { profileFactory } from '@linode/utilities'; import userEvent from '@testing-library/user-event'; import * as React from 'react'; -import { accountSettingsFactory, profileFactory } from 'src/factories'; +import { accountSettingsFactory } from 'src/factories'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/Account/Quotas/utils.test.tsx b/packages/manager/src/features/Account/Quotas/utils.test.tsx index 1defc2fd551..b2d936e64ae 100644 --- a/packages/manager/src/features/Account/Quotas/utils.test.tsx +++ b/packages/manager/src/features/Account/Quotas/utils.test.tsx @@ -1,8 +1,8 @@ +import { profileFactory } from '@linode/utilities'; import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import { renderHook } from '@testing-library/react'; import * as React from 'react'; -import { profileFactory } from 'src/factories/profile'; import { quotaFactory, quotaUsageFactory } from 'src/factories/quotas'; import { diff --git a/packages/manager/src/features/Account/SwitchAccountDrawer.test.tsx b/packages/manager/src/features/Account/SwitchAccountDrawer.test.tsx index d18c3686f87..4454594073f 100644 --- a/packages/manager/src/features/Account/SwitchAccountDrawer.test.tsx +++ b/packages/manager/src/features/Account/SwitchAccountDrawer.test.tsx @@ -1,7 +1,7 @@ +import { profileFactory } from '@linode/utilities'; import { fireEvent, waitFor } from '@testing-library/react'; import * as React from 'react'; -import { profileFactory } from 'src/factories/profile'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/Account/SwitchAccounts/ChildAccountList.test.tsx b/packages/manager/src/features/Account/SwitchAccounts/ChildAccountList.test.tsx index 3e3416e2426..537e0b2b54c 100644 --- a/packages/manager/src/features/Account/SwitchAccounts/ChildAccountList.test.tsx +++ b/packages/manager/src/features/Account/SwitchAccounts/ChildAccountList.test.tsx @@ -1,7 +1,8 @@ +import { profileFactory } from '@linode/utilities'; import { waitFor, within } from '@testing-library/react'; import * as React from 'react'; -import { accountFactory, profileFactory } from 'src/factories'; +import { accountFactory } from 'src/factories'; import { ChildAccountList } from 'src/features/Account/SwitchAccounts/ChildAccountList'; import { makeResourcePage } from 'src/mocks/serverHandlers'; import { HttpResponse, http, server } from 'src/mocks/testServer'; diff --git a/packages/manager/src/features/Backups/BackupsCTA.test.tsx b/packages/manager/src/features/Backups/BackupsCTA.test.tsx index a09eff4c069..cf39fe107e9 100644 --- a/packages/manager/src/features/Backups/BackupsCTA.test.tsx +++ b/packages/manager/src/features/Backups/BackupsCTA.test.tsx @@ -1,7 +1,7 @@ -import { linodeFactory } from '@linode/utilities'; +import { linodeFactory, profileFactory } from '@linode/utilities'; import * as React from 'react'; -import { accountSettingsFactory, profileFactory } from 'src/factories'; +import { accountSettingsFactory } from 'src/factories'; import { makeResourcePage } from 'src/mocks/serverHandlers'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/Billing/BillingPanels/ContactInfoPanel/ContactInformation.test.tsx b/packages/manager/src/features/Billing/BillingPanels/ContactInfoPanel/ContactInformation.test.tsx index bb2c501a26e..007fc991e7c 100644 --- a/packages/manager/src/features/Billing/BillingPanels/ContactInfoPanel/ContactInformation.test.tsx +++ b/packages/manager/src/features/Billing/BillingPanels/ContactInfoPanel/ContactInformation.test.tsx @@ -1,6 +1,6 @@ +import { profileFactory } from '@linode/utilities'; import * as React from 'react'; -import { profileFactory } from 'src/factories'; import { grantsFactory } from 'src/factories/grants'; import { renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/Billing/BillingPanels/PaymentInfoPanel/PaymentInformation.test.tsx b/packages/manager/src/features/Billing/BillingPanels/PaymentInfoPanel/PaymentInformation.test.tsx index c83dce711f2..d448a99a7d2 100644 --- a/packages/manager/src/features/Billing/BillingPanels/PaymentInfoPanel/PaymentInformation.test.tsx +++ b/packages/manager/src/features/Billing/BillingPanels/PaymentInfoPanel/PaymentInformation.test.tsx @@ -1,9 +1,10 @@ +import { profileFactory } from '@linode/utilities'; import { PayPalScriptProvider } from '@paypal/react-paypal-js'; import { fireEvent } from '@testing-library/react'; import * as React from 'react'; import { PAYPAL_CLIENT_ID } from 'src/constants'; -import { profileFactory, paymentMethodFactory } from 'src/factories'; +import { paymentMethodFactory } from 'src/factories'; import { grantsFactory } from 'src/factories/grants'; import { renderWithTheme, wrapWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/IAM/Users/UserDetails/DeleteUserPanel.test.tsx b/packages/manager/src/features/IAM/Users/UserDetails/DeleteUserPanel.test.tsx index 03429a26a97..5126852229f 100644 --- a/packages/manager/src/features/IAM/Users/UserDetails/DeleteUserPanel.test.tsx +++ b/packages/manager/src/features/IAM/Users/UserDetails/DeleteUserPanel.test.tsx @@ -1,7 +1,8 @@ +import { profileFactory } from '@linode/utilities'; import { fireEvent } from '@testing-library/react'; import React from 'react'; -import { accountUserFactory, profileFactory } from 'src/factories'; +import { accountUserFactory } from 'src/factories'; import { renderWithTheme } from 'src/utilities/testHelpers'; import { DeleteUserPanel } from './DeleteUserPanel'; diff --git a/packages/manager/src/features/IAM/Users/UserDetails/UserEmailPanel.test.tsx b/packages/manager/src/features/IAM/Users/UserDetails/UserEmailPanel.test.tsx index ec5f11e2915..56d680f9c21 100644 --- a/packages/manager/src/features/IAM/Users/UserDetails/UserEmailPanel.test.tsx +++ b/packages/manager/src/features/IAM/Users/UserDetails/UserEmailPanel.test.tsx @@ -1,6 +1,7 @@ +import { profileFactory } from '@linode/utilities'; import React from 'react'; -import { accountUserFactory, profileFactory } from 'src/factories'; +import { accountUserFactory } from 'src/factories'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/IAM/Users/UsersTable/UserRow.test.tsx b/packages/manager/src/features/IAM/Users/UsersTable/UserRow.test.tsx index 1522117850d..48297641a19 100644 --- a/packages/manager/src/features/IAM/Users/UsersTable/UserRow.test.tsx +++ b/packages/manager/src/features/IAM/Users/UsersTable/UserRow.test.tsx @@ -1,6 +1,6 @@ +import { profileFactory } from '@linode/utilities'; import React from 'react'; -import { profileFactory } from 'src/factories'; import { accountUserFactory } from 'src/factories/accountUsers'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { diff --git a/packages/manager/src/features/IAM/Users/UsersTable/UsersActionMenu.test.tsx b/packages/manager/src/features/IAM/Users/UsersTable/UsersActionMenu.test.tsx index 13b59a9a7c3..f194e87622b 100644 --- a/packages/manager/src/features/IAM/Users/UsersTable/UsersActionMenu.test.tsx +++ b/packages/manager/src/features/IAM/Users/UsersTable/UsersActionMenu.test.tsx @@ -1,7 +1,7 @@ +import { profileFactory } from '@linode/utilities'; import { fireEvent } from '@testing-library/react'; import React from 'react'; -import { profileFactory } from 'src/factories'; import { renderWithTheme } from 'src/utilities/testHelpers'; import { UsersActionMenu } from './UsersActionMenu'; diff --git a/packages/manager/src/features/Images/ImagesLanding/ImagesLanding.test.tsx b/packages/manager/src/features/Images/ImagesLanding/ImagesLanding.test.tsx index 14e7381047f..1914fff0156 100644 --- a/packages/manager/src/features/Images/ImagesLanding/ImagesLanding.test.tsx +++ b/packages/manager/src/features/Images/ImagesLanding/ImagesLanding.test.tsx @@ -1,8 +1,9 @@ +import { profileFactory } from '@linode/utilities'; import { waitFor, waitForElementToBeRemoved } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import * as React from 'react'; -import { grantsFactory, imageFactory, profileFactory } from 'src/factories'; +import { grantsFactory, imageFactory } from 'src/factories'; import { makeResourcePage } from 'src/mocks/serverHandlers'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { diff --git a/packages/manager/src/features/Images/ImagesLanding/ImagesLandingEmptyState.test.tsx b/packages/manager/src/features/Images/ImagesLanding/ImagesLandingEmptyState.test.tsx index 036449b78bf..68535118cbd 100644 --- a/packages/manager/src/features/Images/ImagesLanding/ImagesLandingEmptyState.test.tsx +++ b/packages/manager/src/features/Images/ImagesLanding/ImagesLandingEmptyState.test.tsx @@ -1,7 +1,8 @@ +import { profileFactory } from '@linode/utilities'; import { waitFor } from '@testing-library/react'; import React from 'react'; -import { grantsFactory, profileFactory } from 'src/factories'; +import { grantsFactory } from 'src/factories'; import { makeResourcePage } from 'src/mocks/serverHandlers'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithThemeAndRouter } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/Linodes/LinodeCreate/Addons/Backups.test.tsx b/packages/manager/src/features/Linodes/LinodeCreate/Addons/Backups.test.tsx index 537aa716d70..80e85ac5ea0 100644 --- a/packages/manager/src/features/Linodes/LinodeCreate/Addons/Backups.test.tsx +++ b/packages/manager/src/features/Linodes/LinodeCreate/Addons/Backups.test.tsx @@ -1,8 +1,8 @@ -import { regionFactory } from '@linode/utilities'; +import { profileFactory, regionFactory } from '@linode/utilities'; import { waitFor } from '@testing-library/react'; import React from 'react'; -import { accountSettingsFactory, profileFactory } from 'src/factories'; +import { accountSettingsFactory } from 'src/factories'; import { grantsFactory } from 'src/factories/grants'; import { makeResourcePage } from 'src/mocks/serverHandlers'; import { HttpResponse, http, server } from 'src/mocks/testServer'; diff --git a/packages/manager/src/features/Linodes/LinodeCreate/Addons/PrivateIP.test.tsx b/packages/manager/src/features/Linodes/LinodeCreate/Addons/PrivateIP.test.tsx index a57756aee8a..3e2dfa064ef 100644 --- a/packages/manager/src/features/Linodes/LinodeCreate/Addons/PrivateIP.test.tsx +++ b/packages/manager/src/features/Linodes/LinodeCreate/Addons/PrivateIP.test.tsx @@ -1,8 +1,7 @@ -import { regionFactory } from '@linode/utilities'; +import { profileFactory, regionFactory } from '@linode/utilities'; import { waitFor } from '@testing-library/react'; import React from 'react'; -import { profileFactory } from 'src/factories'; import { grantsFactory } from 'src/factories/grants'; import { makeResourcePage } from 'src/mocks/serverHandlers'; import { HttpResponse, http, server } from 'src/mocks/testServer'; diff --git a/packages/manager/src/features/Linodes/LinodeCreate/Details/Details.test.tsx b/packages/manager/src/features/Linodes/LinodeCreate/Details/Details.test.tsx index 46e007f0958..98fcf5c6a0d 100644 --- a/packages/manager/src/features/Linodes/LinodeCreate/Details/Details.test.tsx +++ b/packages/manager/src/features/Linodes/LinodeCreate/Details/Details.test.tsx @@ -1,7 +1,8 @@ +import { profileFactory } from '@linode/utilities'; import { waitFor } from '@testing-library/react'; import React from 'react'; -import { grantsFactory, profileFactory } from 'src/factories'; +import { grantsFactory } from 'src/factories'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithThemeAndHookFormContext } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/Linodes/LinodeCreate/Region.test.tsx b/packages/manager/src/features/Linodes/LinodeCreate/Region.test.tsx index 7c2f3f26d45..2dbda81d991 100644 --- a/packages/manager/src/features/Linodes/LinodeCreate/Region.test.tsx +++ b/packages/manager/src/features/Linodes/LinodeCreate/Region.test.tsx @@ -1,13 +1,14 @@ import { linodeFactory, linodeTypeFactory, + profileFactory, regionFactory, } from '@linode/utilities'; import { waitFor } from '@testing-library/react'; import { userEvent } from '@testing-library/user-event'; import React from 'react'; -import { grantsFactory, imageFactory, profileFactory } from 'src/factories'; +import { grantsFactory, imageFactory } from 'src/factories'; import { makeResourcePage } from 'src/mocks/serverHandlers'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithThemeAndHookFormContext } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/Linodes/LinodeCreate/Security.test.tsx b/packages/manager/src/features/Linodes/LinodeCreate/Security.test.tsx index 3938483b0cc..a74ee1ad629 100644 --- a/packages/manager/src/features/Linodes/LinodeCreate/Security.test.tsx +++ b/packages/manager/src/features/Linodes/LinodeCreate/Security.test.tsx @@ -1,8 +1,12 @@ -import { regionFactory } from '@linode/utilities'; +import { + profileFactory, + regionFactory, + sshKeyFactory, +} from '@linode/utilities'; import { waitFor } from '@testing-library/react'; import React from 'react'; -import { accountFactory, profileFactory, sshKeyFactory } from 'src/factories'; +import { accountFactory } from 'src/factories'; import { grantsFactory } from 'src/factories/grants'; import { makeResourcePage } from 'src/mocks/serverHandlers'; import { HttpResponse, http, server } from 'src/mocks/testServer'; diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/ScheduleSettings.test.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/ScheduleSettings.test.tsx index 432ce683b0f..b9f9fbc2243 100644 --- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/ScheduleSettings.test.tsx +++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/ScheduleSettings.test.tsx @@ -1,9 +1,8 @@ -import { linodeFactory } from '@linode/utilities'; +import { linodeFactory, profileFactory } from '@linode/utilities'; import { userEvent } from '@testing-library/user-event'; import { Settings } from 'luxon'; import * as React from 'react'; -import { profileFactory } from 'src/factories'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/ScheduleSettings.tsx b/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/ScheduleSettings.tsx index aeffde9fb56..c29fe74091b 100644 --- a/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/ScheduleSettings.tsx +++ b/packages/manager/src/features/Linodes/LinodesDetail/LinodeBackup/ScheduleSettings.tsx @@ -12,14 +12,12 @@ import { Paper, Typography, } from '@linode/ui'; -import { initWindows } from '@linode/utilities'; +import { getUserTimezone, initWindows } from '@linode/utilities'; import { styled } from '@mui/material/styles'; import { useFormik } from 'formik'; import { useSnackbar } from 'notistack'; import * as React from 'react'; -import { getUserTimezone } from 'src/utilities/getUserTimezone'; - interface Props { isReadOnly: boolean; linodeId: number; diff --git a/packages/manager/src/features/Longview/LongviewLanding/LongviewPlans.test.tsx b/packages/manager/src/features/Longview/LongviewLanding/LongviewPlans.test.tsx index 07db574b1d5..5786900a228 100644 --- a/packages/manager/src/features/Longview/LongviewLanding/LongviewPlans.test.tsx +++ b/packages/manager/src/features/Longview/LongviewLanding/LongviewPlans.test.tsx @@ -1,3 +1,4 @@ +import { profileFactory } from '@linode/utilities'; import { screen, waitFor, @@ -10,16 +11,12 @@ import { withDocumentTitleProvider } from 'src/components/DocumentTitle'; import { accountSettingsFactory } from 'src/factories'; import { grantsFactory } from 'src/factories/grants'; import { longviewSubscriptionFactory } from 'src/factories/longviewSubscription'; -import { profileFactory } from 'src/factories/profile'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithTheme } from 'src/utilities/testHelpers'; -import { - LONGVIEW_FREE_ID, - LongviewPlans, - LongviewPlansProps, - formatPrice, -} from './LongviewPlans'; +import { LONGVIEW_FREE_ID, LongviewPlans, formatPrice } from './LongviewPlans'; + +import type { LongviewPlansProps } from './LongviewPlans'; const mockLongviewSubscriptions = longviewSubscriptionFactory.buildList(4); diff --git a/packages/manager/src/features/Managed/ManagedDashboardCard/ManagedChartPanel.tsx b/packages/manager/src/features/Managed/ManagedDashboardCard/ManagedChartPanel.tsx index 1a3603d7096..35fc5899124 100644 --- a/packages/manager/src/features/Managed/ManagedDashboardCard/ManagedChartPanel.tsx +++ b/packages/manager/src/features/Managed/ManagedDashboardCard/ManagedChartPanel.tsx @@ -1,4 +1,6 @@ +import { useProfile } from '@linode/queries'; import { Box, CircleProgress, ErrorState, Typography } from '@linode/ui'; +import { getUserTimezone } from '@linode/utilities'; import { useTheme } from '@mui/material/styles'; import * as React from 'react'; @@ -9,9 +11,7 @@ import { generateNetworkUnits, } from 'src/features/Longview/shared/utilities'; import { useManagedStatsQuery } from 'src/queries/managed/managed'; -import { useProfile } from '@linode/queries'; import { getAPIErrorOrDefault } from 'src/utilities/errorUtils'; -import { getUserTimezone } from 'src/utilities/getUserTimezone'; import { StyledGraphControlsDiv, diff --git a/packages/manager/src/features/Managed/Monitors/IssueCalendar.tsx b/packages/manager/src/features/Managed/Monitors/IssueCalendar.tsx index d1f610c73cf..4fc7f3884a4 100644 --- a/packages/manager/src/features/Managed/Monitors/IssueCalendar.tsx +++ b/packages/manager/src/features/Managed/Monitors/IssueCalendar.tsx @@ -1,13 +1,14 @@ -import { ManagedIssue } from '@linode/api-v4'; +import { useProfile } from '@linode/queries'; +import { getUserTimezone } from '@linode/utilities'; import { DateTime } from 'luxon'; import * as React from 'react'; -import { useProfile } from '@linode/queries'; import { parseAPIDate } from 'src/utilities/date'; -import { getUserTimezone } from 'src/utilities/getUserTimezone'; import IssueDay from './IssueDay'; +import type { ManagedIssue } from '@linode/api-v4'; + const TOTAL_DAYS = 10; interface IssueCalendarProps { diff --git a/packages/manager/src/features/NodeBalancers/NodeBalancerDetail/NodeBalancerSummary/TablesPanel.tsx b/packages/manager/src/features/NodeBalancers/NodeBalancerDetail/NodeBalancerSummary/TablesPanel.tsx index 38efeaafe54..f2fe70eeac1 100644 --- a/packages/manager/src/features/NodeBalancers/NodeBalancerDetail/NodeBalancerSummary/TablesPanel.tsx +++ b/packages/manager/src/features/NodeBalancers/NodeBalancerDetail/NodeBalancerSummary/TablesPanel.tsx @@ -4,7 +4,7 @@ import { useProfile, } from '@linode/queries'; import { Box, CircleProgress, ErrorState, Paper, Typography } from '@linode/ui'; -import { formatNumber, getMetrics } from '@linode/utilities'; +import { formatNumber, getMetrics, getUserTimezone } from '@linode/utilities'; import { styled, useTheme } from '@mui/material/styles'; import { useParams } from '@tanstack/react-router'; import * as React from 'react'; @@ -13,7 +13,6 @@ import PendingIcon from 'src/assets/icons/pending.svg'; import { AreaChart } from 'src/components/AreaChart/AreaChart'; import { formatBitsPerSecond } from 'src/features/Longview/shared/utilities'; import { getAPIErrorOrDefault } from 'src/utilities/errorUtils'; -import { getUserTimezone } from 'src/utilities/getUserTimezone'; import type { Theme } from '@mui/material/styles'; import type { diff --git a/packages/manager/src/features/ObjectStorage/BucketDetail/ObjectDetailsDrawer.test.tsx b/packages/manager/src/features/ObjectStorage/BucketDetail/ObjectDetailsDrawer.test.tsx index e359f1425d5..41b105baf4a 100644 --- a/packages/manager/src/features/ObjectStorage/BucketDetail/ObjectDetailsDrawer.test.tsx +++ b/packages/manager/src/features/ObjectStorage/BucketDetail/ObjectDetailsDrawer.test.tsx @@ -1,7 +1,7 @@ +import { profileFactory } from '@linode/utilities'; import { act, waitFor } from '@testing-library/react'; import * as React from 'react'; -import { profileFactory } from 'src/factories'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/ObjectStorage/BucketLanding/BucketDetailsDrawer.test.tsx b/packages/manager/src/features/ObjectStorage/BucketLanding/BucketDetailsDrawer.test.tsx index 97e62f9bf99..88486866dba 100644 --- a/packages/manager/src/features/ObjectStorage/BucketLanding/BucketDetailsDrawer.test.tsx +++ b/packages/manager/src/features/ObjectStorage/BucketLanding/BucketDetailsDrawer.test.tsx @@ -1,4 +1,5 @@ import { + profileFactory, readableBytes, regionFactory, truncateMiddle, @@ -10,7 +11,6 @@ import { vi } from 'vitest'; import { objectStorageBucketFactory, objectStorageBucketFactoryGen2, - profileFactory, } from 'src/factories'; import { formatDate } from 'src/utilities/formatDate'; import { renderWithThemeAndHookFormContext } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/Profile/APITokens/CreateAPITokenDrawer.test.tsx b/packages/manager/src/features/Profile/APITokens/CreateAPITokenDrawer.test.tsx index cf02a92a23d..77356b600f6 100644 --- a/packages/manager/src/features/Profile/APITokens/CreateAPITokenDrawer.test.tsx +++ b/packages/manager/src/features/Profile/APITokens/CreateAPITokenDrawer.test.tsx @@ -1,10 +1,10 @@ +import { profileFactory } from '@linode/utilities'; import { waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import * as React from 'react'; import { appTokenFactory } from 'src/factories'; import { grantsFactory } from 'src/factories/grants'; -import { profileFactory } from 'src/factories/profile'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/Profile/APITokens/ViewAPITokenDrawer.test.tsx b/packages/manager/src/features/Profile/APITokens/ViewAPITokenDrawer.test.tsx index 16ef2448375..5b372fff0b1 100644 --- a/packages/manager/src/features/Profile/APITokens/ViewAPITokenDrawer.test.tsx +++ b/packages/manager/src/features/Profile/APITokens/ViewAPITokenDrawer.test.tsx @@ -1,6 +1,7 @@ +import { profileFactory } from '@linode/utilities'; import * as React from 'react'; -import { appTokenFactory, profileFactory } from 'src/factories'; +import { appTokenFactory } from 'src/factories'; import { renderWithTheme } from 'src/utilities/testHelpers'; import { basePerms } from './utils'; diff --git a/packages/manager/src/features/Profile/DisplaySettings/EmailForm.test.tsx b/packages/manager/src/features/Profile/DisplaySettings/EmailForm.test.tsx index f381a503950..40506219b7d 100644 --- a/packages/manager/src/features/Profile/DisplaySettings/EmailForm.test.tsx +++ b/packages/manager/src/features/Profile/DisplaySettings/EmailForm.test.tsx @@ -1,8 +1,8 @@ +import { profileFactory } from '@linode/utilities'; import { waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import React from 'react'; -import { profileFactory } from 'src/factories'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/Profile/DisplaySettings/TimezoneForm.test.tsx b/packages/manager/src/features/Profile/DisplaySettings/TimezoneForm.test.tsx index 2093cd8887e..28a8306b0ff 100644 --- a/packages/manager/src/features/Profile/DisplaySettings/TimezoneForm.test.tsx +++ b/packages/manager/src/features/Profile/DisplaySettings/TimezoneForm.test.tsx @@ -1,7 +1,7 @@ +import { profileFactory } from '@linode/utilities'; import { waitFor } from '@testing-library/react'; import * as React from 'react'; -import { profileFactory } from 'src/factories'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/Profile/DisplaySettings/UsernameForm.test.tsx b/packages/manager/src/features/Profile/DisplaySettings/UsernameForm.test.tsx index d0cd4bd5a8f..ad33398fe11 100644 --- a/packages/manager/src/features/Profile/DisplaySettings/UsernameForm.test.tsx +++ b/packages/manager/src/features/Profile/DisplaySettings/UsernameForm.test.tsx @@ -1,8 +1,8 @@ +import { profileFactory } from '@linode/utilities'; import { waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import React from 'react'; -import { profileFactory } from 'src/factories'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/Profile/SSHKeys/CreateSSHKeyDrawer.test.tsx b/packages/manager/src/features/Profile/SSHKeys/CreateSSHKeyDrawer.test.tsx index e8101838b46..89f25a8679e 100644 --- a/packages/manager/src/features/Profile/SSHKeys/CreateSSHKeyDrawer.test.tsx +++ b/packages/manager/src/features/Profile/SSHKeys/CreateSSHKeyDrawer.test.tsx @@ -1,9 +1,9 @@ +import { sshKeyFactory } from '@linode/utilities'; import { waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import * as React from 'react'; -import { sshKeyFactory } from 'src/factories'; -import { http, HttpResponse, server } from 'src/mocks/testServer'; +import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithTheme } from 'src/utilities/testHelpers'; import { CreateSSHKeyDrawer } from './CreateSSHKeyDrawer'; diff --git a/packages/manager/src/features/Profile/SSHKeys/SSHKeys.test.tsx b/packages/manager/src/features/Profile/SSHKeys/SSHKeys.test.tsx index 296b121a1b0..d06641c1ca7 100644 --- a/packages/manager/src/features/Profile/SSHKeys/SSHKeys.test.tsx +++ b/packages/manager/src/features/Profile/SSHKeys/SSHKeys.test.tsx @@ -1,7 +1,7 @@ +import { sshKeyFactory } from '@linode/utilities'; import { waitForElementToBeRemoved } from '@testing-library/react'; import * as React from 'react'; -import { sshKeyFactory } from 'src/factories'; import { makeResourcePage } from 'src/mocks/serverHandlers'; import { http, HttpResponse, server } from 'src/mocks/testServer'; import { mockMatchMedia, renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/Profile/Settings/Notifications.test.tsx b/packages/manager/src/features/Profile/Settings/Notifications.test.tsx index bb721d54120..bc4d9e90736 100644 --- a/packages/manager/src/features/Profile/Settings/Notifications.test.tsx +++ b/packages/manager/src/features/Profile/Settings/Notifications.test.tsx @@ -1,7 +1,7 @@ +import { profileFactory } from '@linode/utilities'; import { waitFor } from '@testing-library/react'; import React from 'react'; -import { profileFactory } from 'src/factories'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/TopMenu/UserMenu/UserMenu.test.tsx b/packages/manager/src/features/TopMenu/UserMenu/UserMenu.test.tsx index c8596ff8b42..9f3dccc9d9f 100644 --- a/packages/manager/src/features/TopMenu/UserMenu/UserMenu.test.tsx +++ b/packages/manager/src/features/TopMenu/UserMenu/UserMenu.test.tsx @@ -1,7 +1,8 @@ +import { profileFactory } from '@linode/utilities'; import { fireEvent, within } from '@testing-library/react'; import * as React from 'react'; -import { accountFactory, profileFactory } from 'src/factories'; +import { accountFactory } from 'src/factories'; import { grantsFactory } from 'src/factories/grants'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { mockMatchMedia, renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/TopMenu/UserMenu/utils.test.ts b/packages/manager/src/features/TopMenu/UserMenu/utils.test.ts index 8a960cac142..8857c95b81f 100644 --- a/packages/manager/src/features/TopMenu/UserMenu/utils.test.ts +++ b/packages/manager/src/features/TopMenu/UserMenu/utils.test.ts @@ -1,9 +1,9 @@ -import { UserType } from '@linode/api-v4'; - -import { profileFactory } from 'src/factories'; +import { profileFactory } from '@linode/utilities'; import { getCompanyNameOrEmail } from './utils'; +import type { UserType } from '@linode/api-v4'; + const MOCK_COMPANY_NAME = 'Test Company, LLC'; describe('getCompanyNameOrEmail', () => { diff --git a/packages/manager/src/features/Users/UserProfile/UserEmailPanel.test.tsx b/packages/manager/src/features/Users/UserProfile/UserEmailPanel.test.tsx index ec5f11e2915..56d680f9c21 100644 --- a/packages/manager/src/features/Users/UserProfile/UserEmailPanel.test.tsx +++ b/packages/manager/src/features/Users/UserProfile/UserEmailPanel.test.tsx @@ -1,6 +1,7 @@ +import { profileFactory } from '@linode/utilities'; import React from 'react'; -import { accountUserFactory, profileFactory } from 'src/factories'; +import { accountUserFactory } from 'src/factories'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithTheme } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/features/Users/UserRow.test.tsx b/packages/manager/src/features/Users/UserRow.test.tsx index 3841f20d1d3..beee5b15549 100644 --- a/packages/manager/src/features/Users/UserRow.test.tsx +++ b/packages/manager/src/features/Users/UserRow.test.tsx @@ -1,6 +1,6 @@ +import { profileFactory } from '@linode/utilities'; import React from 'react'; -import { profileFactory } from 'src/factories'; import { accountUserFactory } from 'src/factories/accountUsers'; import { grantsFactory } from 'src/factories/grants'; import { HttpResponse, http, server } from 'src/mocks/testServer'; diff --git a/packages/manager/src/features/Volumes/VolumesLandingEmptyState.test.tsx b/packages/manager/src/features/Volumes/VolumesLandingEmptyState.test.tsx index 5db19c1234f..3fe37c35f32 100644 --- a/packages/manager/src/features/Volumes/VolumesLandingEmptyState.test.tsx +++ b/packages/manager/src/features/Volumes/VolumesLandingEmptyState.test.tsx @@ -1,7 +1,8 @@ +import { profileFactory } from '@linode/utilities'; import { waitFor } from '@testing-library/react'; import React from 'react'; -import { grantsFactory, profileFactory } from 'src/factories'; +import { grantsFactory } from 'src/factories'; import { makeResourcePage } from 'src/mocks/serverHandlers'; import { HttpResponse, http, server } from 'src/mocks/testServer'; import { renderWithThemeAndRouter } from 'src/utilities/testHelpers'; diff --git a/packages/manager/src/mocks/presets/extra/account/customProfile.ts b/packages/manager/src/mocks/presets/extra/account/customProfile.ts index 8d936604ea0..7f37a323f0f 100644 --- a/packages/manager/src/mocks/presets/extra/account/customProfile.ts +++ b/packages/manager/src/mocks/presets/extra/account/customProfile.ts @@ -1,6 +1,6 @@ +import { profileFactory } from '@linode/utilities'; import { http } from 'msw'; -import { profileFactory } from 'src/factories'; import { makeResponse } from 'src/mocks/utilities/response'; import type { Profile } from '@linode/api-v4'; diff --git a/packages/manager/src/mocks/serverHandlers.ts b/packages/manager/src/mocks/serverHandlers.ts index 00f3377d718..11bcdcf150c 100644 --- a/packages/manager/src/mocks/serverHandlers.ts +++ b/packages/manager/src/mocks/serverHandlers.ts @@ -19,8 +19,10 @@ import { nodeBalancerFactory, pickRandom, proDedicatedTypeFactory, + profileFactory, regionAvailabilityFactory, regions, + securityQuestionsFactory, } from '@linode/utilities'; import { DateTime } from 'luxon'; import { HttpResponse, http } from 'msw'; @@ -92,9 +94,7 @@ import { placementGroupFactory, possibleMySQLReplicationTypes, possiblePostgresReplicationTypes, - profileFactory, promoFactory, - securityQuestionsFactory, serviceTypesFactory, stackScriptFactory, staticObjects, diff --git a/packages/manager/src/request.test.tsx b/packages/manager/src/request.test.tsx index 4abd6252b72..33bfa853adc 100644 --- a/packages/manager/src/request.test.tsx +++ b/packages/manager/src/request.test.tsx @@ -1,8 +1,8 @@ +import { profileFactory } from '@linode/utilities'; import { AxiosHeaders } from 'axios'; import { handleStartSession } from 'src/store/authentication/authentication.actions'; -import { profileFactory } from './factories'; import { getURL, handleError, injectAkamaiAccountHeader } from './request'; import { storeFactory } from './store'; diff --git a/packages/manager/src/utilities/formatDate.ts b/packages/manager/src/utilities/formatDate.ts index bd07fccd418..719fab754b2 100644 --- a/packages/manager/src/utilities/formatDate.ts +++ b/packages/manager/src/utilities/formatDate.ts @@ -1,11 +1,10 @@ +import { getUserTimezone } from '@linode/utilities'; import { DateTime, Duration } from 'luxon'; import { DATETIME_DISPLAY_FORMAT, ISO_DATE_FORMAT } from 'src/constants'; import { reportException } from 'src/exceptionReporting'; import { parseAPIDate } from 'src/utilities/date'; -import { getUserTimezone } from './getUserTimezone'; - export type TimeInterval = 'day' | 'month' | 'never' | 'week' | 'year'; const durationMap = { diff --git a/packages/utilities/src/factories/index.ts b/packages/utilities/src/factories/index.ts index ea88b488e7c..7994c8c46a0 100644 --- a/packages/utilities/src/factories/index.ts +++ b/packages/utilities/src/factories/index.ts @@ -5,4 +5,5 @@ export * from './linodes'; export * from './linodeConfigInterface'; export * from './linodeInterface'; export * from './nodebalancer'; +export * from './profile'; export * from './regions'; diff --git a/packages/manager/src/factories/profile.ts b/packages/utilities/src/factories/profile.ts similarity index 98% rename from packages/manager/src/factories/profile.ts rename to packages/utilities/src/factories/profile.ts index adf79e23b5f..1aa5aaf5607 100644 --- a/packages/manager/src/factories/profile.ts +++ b/packages/utilities/src/factories/profile.ts @@ -1,4 +1,4 @@ -import { Factory } from '@linode/utilities'; +import { Factory } from './factoryProxy'; import type { Profile, diff --git a/packages/manager/src/utilities/getUserTimezone.test.ts b/packages/utilities/src/helpers/getUserTimezone.test.ts similarity index 86% rename from packages/manager/src/utilities/getUserTimezone.test.ts rename to packages/utilities/src/helpers/getUserTimezone.test.ts index 61e04f05f5a..4713958d419 100644 --- a/packages/manager/src/utilities/getUserTimezone.test.ts +++ b/packages/utilities/src/helpers/getUserTimezone.test.ts @@ -1,9 +1,11 @@ -import { Profile } from '@linode/api-v4/lib/profile'; -import { DateTime } from 'luxon'; +import { describe, expect, it } from 'vitest'; -import { profileFactory } from 'src/factories/profile'; +import { DateTime } from 'luxon'; import { getUserTimezone } from './getUserTimezone'; +import { profileFactory } from '../factories/profile'; + +import type { Profile } from '@linode/api-v4/lib/profile'; const mockProfile: Profile = profileFactory.build(); diff --git a/packages/manager/src/utilities/getUserTimezone.ts b/packages/utilities/src/helpers/getUserTimezone.ts similarity index 88% rename from packages/manager/src/utilities/getUserTimezone.ts rename to packages/utilities/src/helpers/getUserTimezone.ts index 8cada0b91ad..ea6f687a9f6 100644 --- a/packages/manager/src/utilities/getUserTimezone.ts +++ b/packages/utilities/src/helpers/getUserTimezone.ts @@ -2,7 +2,7 @@ import { DateTime, IANAZone } from 'luxon'; export const getUserTimezone = (profileTimezone?: string) => { return profileTimezone && - profileTimezone != '' && + profileTimezone !== '' && IANAZone.isValidZone(profileTimezone) ? profileTimezone : DateTime.local().zoneName; diff --git a/packages/utilities/src/helpers/index.ts b/packages/utilities/src/helpers/index.ts index 976db2d3ac6..56889df0aa4 100644 --- a/packages/utilities/src/helpers/index.ts +++ b/packages/utilities/src/helpers/index.ts @@ -17,10 +17,11 @@ export * from './formatDuration'; export * from './formatStorageUnits'; export * from './formatUptime'; export * from './getAll'; +export * from './getDisplayName'; export * from './getIsLegacyInterfaceArray'; export * from './getNewRegionLabel'; +export * from './getUserTimezone'; export * from './groupByTags'; -export * from './getDisplayName'; export * from './initWindows'; export * from './isNilOrEmpty'; export * from './isNumber'; From d813ffce9c30ac0e630ca6b483976f32ace1e5ab Mon Sep 17 00:00:00 2001 From: pmakode-akamai Date: Wed, 2 Apr 2025 17:46:03 +0530 Subject: [PATCH 2/4] Added changeset: Move `getUserTimeZone` and its associated profile factories to `@linode/utilities` --- .../manager/.changeset/pr-11955-removed-1743596163534.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 packages/manager/.changeset/pr-11955-removed-1743596163534.md diff --git a/packages/manager/.changeset/pr-11955-removed-1743596163534.md b/packages/manager/.changeset/pr-11955-removed-1743596163534.md new file mode 100644 index 00000000000..b004250bd76 --- /dev/null +++ b/packages/manager/.changeset/pr-11955-removed-1743596163534.md @@ -0,0 +1,5 @@ +--- +"@linode/manager": Removed +--- + +Move `getUserTimeZone` and its associated profile factories to `@linode/utilities` ([#11955](https://github.com/linode/manager/pull/11955)) From 27d6cecb2a0b01e5abfeef386ccc5e81a6507bd3 Mon Sep 17 00:00:00 2001 From: pmakode-akamai Date: Wed, 2 Apr 2025 17:46:29 +0530 Subject: [PATCH 3/4] Added changeset: Move `getUserTimeZone` and its associated profile factories to `@linode/utilities` --- .../utilities/.changeset/pr-11955-added-1743596189029.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 packages/utilities/.changeset/pr-11955-added-1743596189029.md diff --git a/packages/utilities/.changeset/pr-11955-added-1743596189029.md b/packages/utilities/.changeset/pr-11955-added-1743596189029.md new file mode 100644 index 00000000000..74f0782d536 --- /dev/null +++ b/packages/utilities/.changeset/pr-11955-added-1743596189029.md @@ -0,0 +1,5 @@ +--- +"@linode/utilities": Added +--- + +Move `getUserTimeZone` and its associated profile factories to `@linode/utilities` ([#11955](https://github.com/linode/manager/pull/11955)) From 50f23ae23849f079011dbc6c5f644df81ad9b269 Mon Sep 17 00:00:00 2001 From: pmakode-akamai Date: Thu, 3 Apr 2025 00:47:52 +0530 Subject: [PATCH 4/4] Update mocks --- .../DateTimeDisplay/DateTimeDisplay.test.tsx | 8 +++++++- .../components/DateTimeDisplay/DateTimeDisplay.tsx | 2 +- .../BillingActivityPanel.test.tsx | 11 +++++++++-- packages/manager/src/utilities/formatDate.test.ts | 10 +++++++++- 4 files changed, 26 insertions(+), 5 deletions(-) diff --git a/packages/manager/src/components/DateTimeDisplay/DateTimeDisplay.test.tsx b/packages/manager/src/components/DateTimeDisplay/DateTimeDisplay.test.tsx index e6acec85550..25b977b5876 100644 --- a/packages/manager/src/components/DateTimeDisplay/DateTimeDisplay.test.tsx +++ b/packages/manager/src/components/DateTimeDisplay/DateTimeDisplay.test.tsx @@ -8,7 +8,13 @@ import { DateTimeDisplay } from './DateTimeDisplay'; import type { DateTimeDisplayProps } from './DateTimeDisplay'; -vi.mock('../../utilities/getUserTimezone'); +vi.mock('@linode/utilities', async () => { + const actual = await vi.importActual('@linode/utilities'); + return { + ...actual, + getUserTimezone: vi.fn().mockReturnValue('utc'), + }; +}); const APIDate = '2018-07-20T04:23:17'; diff --git a/packages/manager/src/components/DateTimeDisplay/DateTimeDisplay.tsx b/packages/manager/src/components/DateTimeDisplay/DateTimeDisplay.tsx index 467a8ec9053..c2fdfaeee14 100644 --- a/packages/manager/src/components/DateTimeDisplay/DateTimeDisplay.tsx +++ b/packages/manager/src/components/DateTimeDisplay/DateTimeDisplay.tsx @@ -1,7 +1,7 @@ +import { useProfile } from '@linode/queries'; import { Typography } from '@linode/ui'; import * as React from 'react'; -import { useProfile } from '@linode/queries'; import { formatDate } from 'src/utilities/formatDate'; import type { TimeInterval } from 'src/utilities/formatDate'; diff --git a/packages/manager/src/features/Billing/BillingPanels/BillingActivityPanel/BillingActivityPanel.test.tsx b/packages/manager/src/features/Billing/BillingPanels/BillingActivityPanel/BillingActivityPanel.test.tsx index f0529271171..5d193f2cfd7 100644 --- a/packages/manager/src/features/Billing/BillingPanels/BillingActivityPanel/BillingActivityPanel.test.tsx +++ b/packages/manager/src/features/Billing/BillingPanels/BillingActivityPanel/BillingActivityPanel.test.tsx @@ -13,13 +13,20 @@ import { paymentToActivityFeedItem, transactionDateOptions, } from './BillingActivityPanel'; -vi.mock('../../../../utilities/getUserTimezone'); + +vi.mock('@linode/utilities', async () => { + const actual = await vi.importActual('@linode/utilities'); + return { + ...actual, + getUserTimezone: vi.fn().mockReturnValue('utc'), + }; +}); // Mock global Date object so Transaction Date tests are deterministic. global.Date.now = vi.fn(() => new Date('2020-01-02T00:00:00').getTime()); vi.mock('@linode/api-v4/lib/account', async () => { - const actual = await vi.importActual('@linode/api-v4/lib/account'); + const actual = await vi.importActual('@linode/api-v4/lib/account'); const invoices = [ // eslint-disable-next-line invoiceFactory.build({ date: '2020-01-01T00:00:00' }), diff --git a/packages/manager/src/utilities/formatDate.test.ts b/packages/manager/src/utilities/formatDate.test.ts index f5cf3e121f6..3ee3d1017cb 100644 --- a/packages/manager/src/utilities/formatDate.test.ts +++ b/packages/manager/src/utilities/formatDate.test.ts @@ -6,7 +6,14 @@ import { } from 'src/constants'; import { formatDate, shouldHumanize } from './formatDate'; -vi.mock('./getUserTimezone'); + +vi.mock('@linode/utilities', async () => { + const actual = await vi.importActual('@linode/utilities'); + return { + ...actual, + getUserTimezone: vi.fn().mockReturnValue('utc'), + }; +}); describe('shouldHumanize', () => { it('should NOT humanize few days duration with day cutoff', () => { @@ -22,6 +29,7 @@ describe('shouldHumanize', () => { expect(shouldHumanize(time, 'month')).toBeTruthy(); }); }); + describe('formatDate utility', () => { describe('Non-humanized dates', () => { it('should be displayed in 24-hour ISO format', () => {