diff --git a/packages/editor-ui/src/Interface.ts b/packages/editor-ui/src/Interface.ts index 9580abc990..d20f671302 100644 --- a/packages/editor-ui/src/Interface.ts +++ b/packages/editor-ui/src/Interface.ts @@ -512,7 +512,25 @@ export type IPersonalizationSurveyAnswersV3 = { email?: string | null; }; -export type IPersonalizationLatestVersion = IPersonalizationSurveyAnswersV3; +export type IPersonalizationSurveyAnswersV4 = { + version: 'v4'; + automationGoalDevops?: string[] | null; + automationGoalDevopsOther?: string | null; + companyIndustryExtended?: string[] | null; + otherCompanyIndustryExtended?: string[] | null; + companySize?: string | null; + companyType?: string | null; + automationGoalSm?: string[] | null; + automationGoalSmOther?: string | null; + usageModes?: string[] | null; + email?: string | null; + role?: string | null; + roleOther?: string | null; + reportedSource?: string | null; + reportedSourceOther?: string | null; +}; + +export type IPersonalizationLatestVersion = IPersonalizationSurveyAnswersV4; export type IPersonalizationSurveyVersions = | IPersonalizationSurveyAnswersV1 diff --git a/packages/editor-ui/src/__tests__/setup.ts b/packages/editor-ui/src/__tests__/setup.ts index bd57d1e416..350dbc992a 100644 --- a/packages/editor-ui/src/__tests__/setup.ts +++ b/packages/editor-ui/src/__tests__/setup.ts @@ -11,3 +11,11 @@ Vue.config.devtools = false; // [Vue warn]: Failed to mount component: template or render function not defined. Vue.component('vue-json-pretty', require('vue-json-pretty').default); Vue.use((vue) => I18nPlugin(vue)); + +window.ResizeObserver = + window.ResizeObserver || + vi.fn().mockImplementation(() => ({ + disconnect: vi.fn(), + observe: vi.fn(), + unobserve: vi.fn(), + })); diff --git a/packages/editor-ui/src/__tests__/utils.ts b/packages/editor-ui/src/__tests__/utils.ts new file mode 100644 index 0000000000..49834e3854 --- /dev/null +++ b/packages/editor-ui/src/__tests__/utils.ts @@ -0,0 +1,17 @@ +export const retry = (assertion: () => any, { interval = 20, timeout = 200 } = {}) => { + return new Promise((resolve, reject) => { + const startTime = Date.now(); + + const tryAgain = () => { + setTimeout(() => { + try { + resolve(assertion()); + } catch (err) { + Date.now() - startTime > timeout ? reject(err) : tryAgain(); + } + }, interval); + }; + + tryAgain(); + }); +}; diff --git a/packages/editor-ui/src/components/PersonalizationModal.vue b/packages/editor-ui/src/components/PersonalizationModal.vue index 7751ae46d1..b0606f5209 100644 --- a/packages/editor-ui/src/components/PersonalizationModal.vue +++ b/packages/editor-ui/src/components/PersonalizationModal.vue @@ -53,7 +53,7 @@