From 798365ab5fbea69a1887fec518700cb064d64782 Mon Sep 17 00:00:00 2001 From: GitLab UI REST integrations Date: Fri, 16 May 2025 10:28:44 +0000 Subject: [PATCH 1/2] GitLab UI integration test for migrate-form-checkbox --- yarn.lock | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/yarn.lock b/yarn.lock index a220764ef71bc6..2e0a46f0635ed2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1430,7 +1430,7 @@ resolved "https://registry.yarnpkg.com/@gitlab/fonts/-/fonts-1.3.1.tgz#dd335ed25cb33927abc1d80dfbfa31fc93e9bd15" integrity sha512-/7Q5Sy9Q3pmutV/1EgURm3iDZtV0HcE4nTwFpHLCrGDdxQ3pNv6SdujzeJExnfiI5Y+1FGfOvKwOlmiVuyDtzA== -"@gitlab/noop@^1.0.1": +"@gitlab/noop@^1.0.1", jackspeak@^3.1.2, "jackspeak@npm:@gitlab/noop@1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@gitlab/noop/-/noop-1.0.1.tgz#71a831146ee02732b4a61d2d3c11204564753454" integrity sha512-s++4wjMYeDvBp9IO59DBrWjy8SE/gFkjTDO5ck2W0S6Vv7OlqgErwL7pHngAnrSmTJAzyUG8wHGqo0ViS4jn5Q== @@ -9536,11 +9536,6 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jackspeak@^3.1.2, "jackspeak@npm:@gitlab/noop@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@gitlab/noop/-/noop-1.0.1.tgz#71a831146ee02732b4a61d2d3c11204564753454" - integrity sha512-s++4wjMYeDvBp9IO59DBrWjy8SE/gFkjTDO5ck2W0S6Vv7OlqgErwL7pHngAnrSmTJAzyUG8wHGqo0ViS4jn5Q== - jed@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/jed/-/jed-1.1.1.tgz#7a549bbd9ffe1585b0cd0a191e203055bee574b4" -- GitLab From 92fdde007d24f53ef4d082d706da4499250068e6 Mon Sep 17 00:00:00 2001 From: Lorenz van Herwaarden Date: Mon, 2 Jun 2025 17:16:46 +0200 Subject: [PATCH 2/2] Update gitlab/ui dependency to new repo Update to @gitlab/ui v122.3.0 Fix various jest tests and update snapshots. Co-authored-by: Paul Gascou-Vaillancourt Co-authored-by: Peter Hegman --- .../general/components/signup_checkbox.vue | 2 +- .../settings/components/ai_models_form_spec.js | 2 +- .../components/duo_core_features_form_spec.js | 4 ++-- .../duo_expanded_logging_form_spec.js | 7 +++---- .../duo_experiment_beta_features_form_spec.js | 4 ++-- .../components/duo_prompt_cache_form_spec.js | 9 +++++---- .../duo_workflow_settings_form_spec.js | 8 ++++---- .../components/projects_section_spec.js | 8 +++----- .../projects_report/projects_table_spec.js | 6 ++---- .../components/__snapshots__/app_spec.js.snap | 1 + .../sidebar/__snapshots__/assignee_spec.js.snap | 1 + .../service_level_agreement_form_spec.js.snap | 4 ++-- .../components/requirement_form_spec.js | 2 +- .../manage_role/permissions_selector_spec.js | 7 ++++--- .../components/dast_site_auth_section_spec.js | 4 ++-- .../vulnerability_list_spec.js | 17 ++++++++--------- .../__snapshots__/settings_form_spec.js.snap | 12 ++++++------ package.json | 2 +- .../components/signup_checkbox_spec.js | 6 +++--- .../__snapshots__/alerts_form_spec.js.snap | 10 +++++----- .../components/commit/commit_form_spec.js | 2 +- .../diffs/components/settings_dropdown_spec.js | 9 +++------ .../cloudsql/create_instance_form_spec.js | 2 +- .../google_cloud/service_accounts/form_spec.js | 2 +- .../edit/components/active_checkbox_spec.js | 6 +++--- .../edit/components/trigger_fields_spec.js | 4 ++-- .../notes/components/comment_form_spec.js | 3 +-- .../custom_notifications_modal_spec.js | 2 +- .../components/details/package_files_spec.js | 15 ++++++++------- .../__snapshots__/package_list_row_spec.js.snap | 4 ++-- .../shared/components/registry_list_spec.js | 16 ++-------------- .../edit/protections/merge_protections_spec.js | 2 +- .../edit/protections/push_protections_spec.js | 2 +- .../states/mr_widget_ready_to_merge_spec.js | 2 +- .../mr_widget_squash_before_merge_spec.js | 6 +++--- yarn.lock | 15 ++++++++++----- 36 files changed, 98 insertions(+), 110 deletions(-) diff --git a/app/assets/javascripts/pages/admin/application_settings/general/components/signup_checkbox.vue b/app/assets/javascripts/pages/admin/application_settings/general/components/signup_checkbox.vue index 804e87c86873b8..fff64c78a86ad1 100644 --- a/app/assets/javascripts/pages/admin/application_settings/general/components/signup_checkbox.vue +++ b/app/assets/javascripts/pages/admin/application_settings/general/components/signup_checkbox.vue @@ -9,7 +9,7 @@ export default { id: { type: String, required: false, - default: '', + default: undefined, }, name: { type: String, diff --git a/ee/spec/frontend/ai/settings/components/ai_models_form_spec.js b/ee/spec/frontend/ai/settings/components/ai_models_form_spec.js index f3bcaeab560c1b..2729419d9dbf76 100644 --- a/ee/spec/frontend/ai/settings/components/ai_models_form_spec.js +++ b/ee/spec/frontend/ai/settings/components/ai_models_form_spec.js @@ -64,7 +64,7 @@ describe('AiModelsForm', () => { }); it('renders the checkbox checked', () => { - expect(findCheckbox().attributes('checked')).toBeDefined(); + expect(findCheckbox().props('checked')).toBe(true); }); }); diff --git a/ee/spec/frontend/ai/settings/components/duo_core_features_form_spec.js b/ee/spec/frontend/ai/settings/components/duo_core_features_form_spec.js index 68970394ea97b9..08800f1209b70c 100644 --- a/ee/spec/frontend/ai/settings/components/duo_core_features_form_spec.js +++ b/ee/spec/frontend/ai/settings/components/duo_core_features_form_spec.js @@ -113,7 +113,7 @@ describe('DuoCoreFeaturesForm', () => { it('disables the checkbox', () => { wrapper = createComponent({ props: { disabledCheckbox: true } }); - expect(findFormCheckbox().attributes('disabled')).toBeDefined(); + expect(findFormCheckbox().props('disabled')).toBeDefined(); }); }); @@ -122,6 +122,6 @@ describe('DuoCoreFeaturesForm', () => { await wrapper.setProps({ disabledCheckbox: true }); - expect(findFormCheckbox().attributes('disabled')).toBeDefined(); + expect(findFormCheckbox().props('disabled')).toBeDefined(); }); }); diff --git a/ee/spec/frontend/ai/settings/components/duo_expanded_logging_form_spec.js b/ee/spec/frontend/ai/settings/components/duo_expanded_logging_form_spec.js index 03db7b1e27347a..5baa8401c9bf0c 100644 --- a/ee/spec/frontend/ai/settings/components/duo_expanded_logging_form_spec.js +++ b/ee/spec/frontend/ai/settings/components/duo_expanded_logging_form_spec.js @@ -28,14 +28,13 @@ describe('DuoExpandedLoggingForm', () => { const findTitle = () => wrapper.find('h5').text(); const findCheckbox = () => wrapper.findComponent(GlFormCheckbox); - const findCheckboxLabel = () => wrapper.findByTestId('ai-logging-checkbox'); it('has the correct title', () => { expect(findTitle()).toBe('Enable AI logs'); }); it('has the correct label', () => { - expect(findCheckboxLabel().text()).toBe( + expect(findCheckbox().text()).toBe( 'Capture detailed information about AI-related activities and requests.', ); }); @@ -46,7 +45,7 @@ describe('DuoExpandedLoggingForm', () => { }); it('renders the checkbox checked', () => { - expect(findCheckbox().attributes('checked')).toBeDefined(); + expect(findCheckbox().props('checked')).toBe(true); }); }); @@ -56,7 +55,7 @@ describe('DuoExpandedLoggingForm', () => { }); it('renders the checkbox unchecked', () => { - expect(findCheckbox().attributes('checked')).toBeUndefined(); + expect(findCheckbox().props('checked')).toBe(false); }); }); }); diff --git a/ee/spec/frontend/ai/settings/components/duo_experiment_beta_features_form_spec.js b/ee/spec/frontend/ai/settings/components/duo_experiment_beta_features_form_spec.js index 529674b4e07cf1..37ac93ccbf83dd 100644 --- a/ee/spec/frontend/ai/settings/components/duo_experiment_beta_features_form_spec.js +++ b/ee/spec/frontend/ai/settings/components/duo_experiment_beta_features_form_spec.js @@ -65,7 +65,7 @@ describe('DuoExperimentBetaFeaturesForm', () => { }); it('sets initial checkbox state based on experimentFeaturesEnabled prop when unselected', () => { - expect(findFormCheckbox().attributes('checked')).toBe(undefined); + expect(findFormCheckbox().props('checked')).toBe(false); }); it('emits change event when checkbox is clicked', () => { @@ -89,7 +89,7 @@ describe('DuoExperimentBetaFeaturesForm', () => { }); it('disables checkbox', () => { - expect(findFormCheckbox().attributes().disabled).toBe('true'); + expect(findFormCheckbox().props('disabled')).toBe(true); }); it('shows popover', () => { diff --git a/ee/spec/frontend/ai/settings/components/duo_prompt_cache_form_spec.js b/ee/spec/frontend/ai/settings/components/duo_prompt_cache_form_spec.js index 4fe30b7ceba88e..def74d06641265 100644 --- a/ee/spec/frontend/ai/settings/components/duo_prompt_cache_form_spec.js +++ b/ee/spec/frontend/ai/settings/components/duo_prompt_cache_form_spec.js @@ -60,8 +60,7 @@ describe('DuoPromptCacheForm', () => { }); it('sets initial checkbox state based on promptCacheEnabled prop when unselected', () => { - // Fix: Use 'checked' prop instead of 'value' - expect(findFormCheckbox().props('value')).toBe(undefined); + expect(findFormCheckbox().props('checked')).toBe(false); }); it('emits change event when checkbox is clicked', async () => { @@ -86,7 +85,7 @@ describe('DuoPromptCacheForm', () => { }); it('disables checkbox', () => { - expect(findFormCheckbox().attributes().disabled).toBe('true'); + expect(findFormCheckbox().props('disabled')).toBe(true); }); it('shows popover', () => { @@ -95,7 +94,9 @@ describe('DuoPromptCacheForm', () => { }); it('renders checkbox with data-testid attribute', () => { - expect(findFormCheckbox().attributes('data-testid')).toBe('use-prompt-cache-checkbox'); + expect(findFormCheckbox().find('input').attributes('data-testid')).toBe( + 'use-prompt-cache-checkbox', + ); }); }); }); diff --git a/ee/spec/frontend/ai/settings/components/duo_workflow_settings_form_spec.js b/ee/spec/frontend/ai/settings/components/duo_workflow_settings_form_spec.js index 74620e0d6497d3..bec0d3c6caf522 100644 --- a/ee/spec/frontend/ai/settings/components/duo_workflow_settings_form_spec.js +++ b/ee/spec/frontend/ai/settings/components/duo_workflow_settings_form_spec.js @@ -47,9 +47,9 @@ describe('DuoWorkflowSettingsForm', () => { await nextTick(); if (isMcpEnabled) { - expect(findFormCheckbox().attributes('checked')).toBe(String(isMcpEnabled)); + expect(findFormCheckbox().props('checked')).toBe(isMcpEnabled); } else { - expect(findFormCheckbox().attributes('checked')).toBeUndefined(); + expect(findFormCheckbox().props('checked')).toBe(false); } }, ); @@ -62,13 +62,13 @@ describe('DuoWorkflowSettingsForm', () => { }); it('renders checkbox with correct data-testid attribute', () => { - expect(findFormCheckbox().attributes('data-testid')).toBe( + expect(findFormCheckbox().find('input').attributes('data-testid')).toBe( 'enable-duo-workflow-mcp-enabled-checkbox', ); }); it('renders checkbox with correct name attribute', () => { - expect(findFormCheckbox().attributes('name')).toBe( + expect(findFormCheckbox().props('name')).toBe( 'namespace[ai_settings_attributes][duo_workflow_mcp_enabled]', ); }); diff --git a/ee/spec/frontend/compliance_dashboard/components/frameworks_report/edit_framework/components/projects_section_spec.js b/ee/spec/frontend/compliance_dashboard/components/frameworks_report/edit_framework/components/projects_section_spec.js index 248f6520220a94..89a0d711b76df3 100644 --- a/ee/spec/frontend/compliance_dashboard/components/frameworks_report/edit_framework/components/projects_section_spec.js +++ b/ee/spec/frontend/compliance_dashboard/components/frameworks_report/edit_framework/components/projects_section_spec.js @@ -217,8 +217,7 @@ describe('Projects section', () => { describe('project selection', () => { it('selects all projects when select all checkbox is clicked', async () => { - const selectAllCheckbox = findSelectAllCheckbox(); - await selectAllCheckbox.setChecked(true); + await findSelectAllCheckbox().setChecked(true); await nextTick(); const emittedEvents = wrapper.emitted('update:projects'); @@ -229,10 +228,9 @@ describe('Projects section', () => { }); it('deselects all projects when select all checkbox is unchecked', async () => { - const selectAllCheckbox = findSelectAllCheckbox(); - await selectAllCheckbox.setChecked(true); + await findSelectAllCheckbox().setChecked(true); await nextTick(); - await selectAllCheckbox.setChecked(false); + await findSelectAllCheckbox().setChecked(false); await nextTick(); const emittedEvents = wrapper.emitted('update:projects'); diff --git a/ee/spec/frontend/compliance_dashboard/components/projects_report/projects_table_spec.js b/ee/spec/frontend/compliance_dashboard/components/projects_report/projects_table_spec.js index 12697654f38567..a651b71c27c687 100644 --- a/ee/spec/frontend/compliance_dashboard/components/projects_report/projects_table_spec.js +++ b/ee/spec/frontend/compliance_dashboard/components/projects_report/projects_table_spec.js @@ -76,8 +76,6 @@ describe('ProjectsTable component', () => { findTable().findAll('th > div').at(0).findComponent(GlFormCheckbox); const findSelectedRows = () => findTable().findAll('.b-table-row-selected'); - const isIndeterminate = (glFormCheckbox) => glFormCheckbox.vm.$attrs.indeterminate; - const selectRow = (index) => findTableRowData(index).at(0).trigger('click'); const getMockFrameworksGraphQl = (count = 2) => jest.fn().mockResolvedValue(createComplianceFrameworksReportResponse({ count, projects: 2 })); @@ -227,7 +225,7 @@ describe('ProjectsTable component', () => { it('renders indeterminate state when not all rows are selected', async () => { await selectRow(0); - expect(isIndeterminate(findSelectAllCheckbox())).toBe(true); + expect(findSelectAllCheckbox().props('indeterminate')).toBe(true); }); it('does not render indeterminate state when all rows are selected', async () => { @@ -236,7 +234,7 @@ describe('ProjectsTable component', () => { await selectRow(i); } - expect(isIndeterminate(findSelectAllCheckbox())).toBe(false); + expect(findSelectAllCheckbox().props('indeterminate')).toBe(false); }); it('renders checked state when all rows are selected', async () => { diff --git a/ee/spec/frontend/dependencies/components/__snapshots__/app_spec.js.snap b/ee/spec/frontend/dependencies/components/__snapshots__/app_spec.js.snap index 8127d4796c2e22..f86c9886f97c73 100644 --- a/ee/spec/frontend/dependencies/components/__snapshots__/app_spec.js.snap +++ b/ee/spec/frontend/dependencies/components/__snapshots__/app_spec.js.snap @@ -6,6 +6,7 @@ exports[`DependenciesApp component on creation if project has no dependencies sh "contentClass": [], "description": null, "headerLevel": 2, + "illustrationName": null, "invertInDarkMode": true, "primaryButtonLink": null, "primaryButtonText": null, diff --git a/ee/spec/frontend/external_issues_show/components/sidebar/__snapshots__/assignee_spec.js.snap b/ee/spec/frontend/external_issues_show/components/sidebar/__snapshots__/assignee_spec.js.snap index f5ef2fe83d3db5..7d8776d3d3c7d8 100644 --- a/ee/spec/frontend/external_issues_show/components/sidebar/__snapshots__/assignee_spec.js.snap +++ b/ee/spec/frontend/external_issues_show/components/sidebar/__snapshots__/assignee_spec.js.snap @@ -18,6 +18,7 @@ exports[`ExternalIssuesSidebarAssignee with assignee template renders avatar com entity-name="Justin Ho" label="Justin Ho" labellink="" + labellinkattrs="[object Object]" size="32" src="http://127.0.0.1:3000/uploads/-/system/user/avatar/1/avatar.png?width=90" sublabellink="" diff --git a/ee/spec/frontend/incidents_settings/components/__snapshots__/service_level_agreement_form_spec.js.snap b/ee/spec/frontend/incidents_settings/components/__snapshots__/service_level_agreement_form_spec.js.snap index e865296b5e7632..eb4c15e03a2ce7 100644 --- a/ee/spec/frontend/incidents_settings/components/__snapshots__/service_level_agreement_form_spec.js.snap +++ b/ee/spec/frontend/incidents_settings/components/__snapshots__/service_level_agreement_form_spec.js.snap @@ -17,7 +17,7 @@ exports[`Alert integration settings form should match the default snapshot 1`] = Activate "time to SLA" countdown timer @@ -35,7 +35,7 @@ exports[`Alert integration settings form should match the default snapshot 1`] = class="gl-flex gl-flex-row" > { expect(wrapper.findComponent(GlFormCheckbox).exists()).toBe(true); expect(findCheckbox(wrapper).exists()).toBe(true); - expect(findCheckbox(wrapper).vm.$attrs.checked).toBe(satisfied); + expect(findCheckbox(wrapper).props('checked')).toBe(satisfied); }, ); }); diff --git a/ee/spec/frontend/roles_and_permissions/components/manage_role/permissions_selector_spec.js b/ee/spec/frontend/roles_and_permissions/components/manage_role/permissions_selector_spec.js index 7c0839f55d365c..224706f63744b7 100644 --- a/ee/spec/frontend/roles_and_permissions/components/manage_role/permissions_selector_spec.js +++ b/ee/spec/frontend/roles_and_permissions/components/manage_role/permissions_selector_spec.js @@ -47,7 +47,7 @@ describe('Permissions Selector component', () => { const findTable = () => wrapper.findComponent(GlTable); const findTableRow = (idx) => findTable().findAll('tbody > tr').at(idx); const findTableRowData = (idx) => findTableRow(idx).findAll('td'); - const findCheckboxes = () => wrapper.findAllByTestId('permission-checkbox'); + const findCheckbox = (idx) => findTableRow(idx).findComponent(GlFormCheckbox); const findToggleAllCheckbox = () => wrapper.findByTestId('permission-checkbox-all'); const findPermissionsSelectedMessage = () => wrapper.findByTestId('permissions-selected-message'); const findAlert = () => wrapper.findComponent(GlAlert); @@ -143,12 +143,13 @@ describe('Permissions Selector component', () => { notIncludedIndexes.forEach((i) => { expect(findTableRowData(i).at(1).text()).not.toContain('Added from'); - expect(findCheckboxes().at(i).attributes('disabled')).toBeUndefined(); + + expect(findCheckbox(i).props('disabled')).toBe(false); }); includedIndexes.forEach((i) => { expect(findTableRowData(i).at(1).text()).toContain('Added from Developer'); - expect(findCheckboxes().at(i).attributes('disabled')).toBeDefined(); + expect(findCheckbox(i).props('disabled')).toBe(true); }); }); diff --git a/ee/spec/frontend/security_configuration/dast_profiles/dast_site_profiles/components/dast_site_auth_section_spec.js b/ee/spec/frontend/security_configuration/dast_profiles/dast_site_profiles/components/dast_site_auth_section_spec.js index 03c68b2d655f44..d7fb7418b6767f 100644 --- a/ee/spec/frontend/security_configuration/dast_profiles/dast_site_profiles/components/dast_site_auth_section_spec.js +++ b/ee/spec/frontend/security_configuration/dast_profiles/dast_site_profiles/components/dast_site_auth_section_spec.js @@ -57,14 +57,14 @@ describe('DastSiteAuthSection', () => { describe('authentication toggle', () => { it('is set false by default', () => { createComponent(); - expect(findAuthCheckbox().vm.$attrs.checked).toBe(false); + expect(findAuthCheckbox().props('checked')).toBe(false); }); it.each([true, false])( 'is set correctly when the "enabled" field is set to "%s"', (authEnabled) => { createComponent({ fields: { enabled: authEnabled } }); - expect(findAuthCheckbox().vm.$attrs.checked).toBe(authEnabled); + expect(findAuthCheckbox().props('checked')).toBe(authEnabled); }, ); diff --git a/ee/spec/frontend/security_dashboard/components/shared/vulnerability_report/vulnerability_list_spec.js b/ee/spec/frontend/security_dashboard/components/shared/vulnerability_report/vulnerability_list_spec.js index 3f1714415f79d5..70371d8bc93d31 100644 --- a/ee/spec/frontend/security_dashboard/components/shared/vulnerability_report/vulnerability_list_spec.js +++ b/ee/spec/frontend/security_dashboard/components/shared/vulnerability_report/vulnerability_list_spec.js @@ -101,7 +101,7 @@ describe('Vulnerability list component', () => { const findDashboardHasNoVulnerabilities = () => wrapper.findComponent(DashboardHasNoVulnerabilities); const findVendorNames = () => wrapper.findByTestId('vulnerability-vendor'); - const findVulnerabilityCheckbox = () => wrapper.findByTestId('vulnerability-checkbox'); + const findVulnerabilityCheckbox = () => wrapper.findAllComponents(GlFormCheckbox).at(1); const findCheckAllCheckbox = () => wrapper.findByTestId('vulnerability-checkbox-all'); const findAllRowCheckboxes = () => wrapper.findAllByTestId('vulnerability-checkbox'); const findSkeletonLoading = () => wrapper.findAllComponents(GlSkeletonLoader); @@ -189,7 +189,7 @@ describe('Vulnerability list component', () => { }); it('should show the selection summary when a checkbox is selected', async () => { - await findVulnerabilityCheckbox().trigger('change'); + await findVulnerabilityCheckbox().vm.$emit('change'); expect(findSelectionSummary().props('visible')).toBe(true); }); @@ -212,7 +212,7 @@ describe('Vulnerability list component', () => { directives: {}, }); - await findVulnerabilityCheckbox().trigger('change'); + await findVulnerabilityCheckbox().vm.$emit('change'); expect(findSelectionSummary().props('selectedVulnerabilities')).toHaveLength(1); wrapper.setProps({ vulnerabilities: [] }); @@ -224,14 +224,14 @@ describe('Vulnerability list component', () => { it('should uncheck a selected vulnerability after the vulnerability is updated', async () => { const checkbox = () => findVulnerabilityCheckbox(); - await checkbox().trigger('change'); - expect(checkbox().element.checked).toBe(true); + await checkbox().vm.$emit('change'); + expect(checkbox().props('checked')).toBe(true); await nextTick(); findSelectionSummary().vm.$emit('vulnerabilities-updated', [newVulnerabilities[0].id]); await nextTick(); - expect(checkbox().element.checked).toBe(false); + expect(checkbox().props('checked')).toBe(false); }); }); @@ -577,8 +577,7 @@ describe('Vulnerability list component', () => { }); describe('row click', () => { - const findRowCheckbox = (index) => - findRow(index).find('[data-testid="vulnerability-checkbox"]'); + const findRowCheckbox = (index) => findRow(index).findComponent(GlFormCheckbox); beforeEach(() => { createWrapper({ props: { vulnerabilities } }); @@ -590,7 +589,7 @@ describe('Vulnerability list component', () => { const clickRows = () => rowsToClick.forEach((row) => findRow(row).trigger('click')); const expectRowCheckboxesToBe = (condition) => { for (let i = 0; i < rowCount; i += 1) - expect(findRowCheckbox(i).element.checked).toBe(condition(i)); + expect(findRowCheckbox(i).props('checked')).toBe(condition(i)); }; clickRows(); diff --git a/ee/spec/frontend/status_page_settings/__snapshots__/settings_form_spec.js.snap b/ee/spec/frontend/status_page_settings/__snapshots__/settings_form_spec.js.snap index 32d876fc165c87..62188240eb2cc5 100644 --- a/ee/spec/frontend/status_page_settings/__snapshots__/settings_form_spec.js.snap +++ b/ee/spec/frontend/status_page_settings/__snapshots__/settings_form_spec.js.snap @@ -82,7 +82,7 @@ exports[`Status Page settings form default state should match the default snapsh optionaltext="(optional)" > @@ -124,7 +124,7 @@ exports[`Status Page settings form default state should match the default snapsh optionaltext="(optional)" > @@ -145,7 +145,7 @@ exports[`Status Page settings form default state should match the default snapsh optionaltext="(optional)" > @@ -181,7 +181,7 @@ exports[`Status Page settings form default state should match the default snapsh optionaltext="(optional)" > diff --git a/package.json b/package.json index 52902ce0bd7acf..42302eb9c8720d 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "@gitlab/fonts": "^1.3.1", "@gitlab/query-language-rust": "0.20.6", "@gitlab/svgs": "3.146.0", - "@gitlab/ui": "120.0.0", + "@gitlab/ui": "122.3.0", "@gitlab/vue-router-vue3": "npm:vue-router@4.5.1", "@gitlab/vuex-vue3": "npm:vuex@4.1.0", "@gitlab/web-ide": "^0.0.1-dev-20250818141247", diff --git a/spec/frontend/admin/signup_restrictions/components/signup_checkbox_spec.js b/spec/frontend/admin/signup_restrictions/components/signup_checkbox_spec.js index 6e549dfe631f21..0dbd3cb1e28deb 100644 --- a/spec/frontend/admin/signup_restrictions/components/signup_checkbox_spec.js +++ b/spec/frontend/admin/signup_restrictions/components/signup_checkbox_spec.js @@ -43,7 +43,7 @@ describe('Signup Form', () => { describe('checkbox', () => { it('gets passed correct checked value', () => { - expect(findCheckbox().attributes('checked')).toBe('true'); + expect(findCheckbox().props('checked')).toBe(true); }); it('gets passed correct label', () => { @@ -55,12 +55,12 @@ describe('Signup Form', () => { }); it('gets passed data qa selector', () => { - expect(findCheckbox().attributes('data-testid')).toBe(props.dataTestId); + expect(findCheckbox().find('input').attributes('data-testid')).toBe(props.dataTestId); }); it('gets passed `disabled` property', () => { mountComponent({ disabled: true }); - expect(findCheckbox().attributes().disabled).toBe('true'); + expect(findCheckbox().props('disabled')).toBe(true); }); }); }); diff --git a/spec/frontend/alerts_settings/components/__snapshots__/alerts_form_spec.js.snap b/spec/frontend/alerts_settings/components/__snapshots__/alerts_form_spec.js.snap index dfbac5f7ef1c56..4d2479499a4e70 100644 --- a/spec/frontend/alerts_settings/components/__snapshots__/alerts_form_spec.js.snap +++ b/spec/frontend/alerts_settings/components/__snapshots__/alerts_form_spec.js.snap @@ -16,7 +16,7 @@ exports[`Alert integration settings form default state should match the default Create an incident. Incidents are created for each alert triggered. @@ -32,7 +32,7 @@ exports[`Alert integration settings form default state should match the default >