diff --git a/apps/systemtags/src/components/SystemTagForm.spec.ts b/apps/systemtags/src/components/SystemTagForm.spec.ts new file mode 100644 index 0000000000000..1e4ee8c3facda --- /dev/null +++ b/apps/systemtags/src/components/SystemTagForm.spec.ts @@ -0,0 +1,38 @@ +/** + * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +import type { Wrapper } from '@vue/test-utils' +import type Vue from 'vue' +import type { TagWithId } from '../types.ts' + +// eslint-disable-next-line n/no-extraneous-import -- transitive dependency of @nextcloud/vue, needed to identify the rendered select in tests +import { VueSelect } from '@nextcloud/vue-select' +import { mount } from '@vue/test-utils' +import { afterEach, describe, expect, it } from 'vitest' +import SystemTagForm from './SystemTagForm.vue' + +const tags: TagWithId[] = Array.from({ length: 8 }, (_, index) => ({ + id: index + 1, + displayName: `tag ${index + 1}`, + userVisible: true, + userAssignable: true, + canAssign: true, +})) + +describe('SystemTagForm', () => { + let component: Wrapper + + afterEach(() => { + component?.destroy() + }) + + it('offers every tag for editing', () => { + component = mount(SystemTagForm, { propsData: { tags } }) + + const select = component.findComponent(VueSelect) + + expect(select.vm.filteredOptions).toHaveLength(tags.length) + }) +}) diff --git a/apps/systemtags/src/components/SystemTagForm.vue b/apps/systemtags/src/components/SystemTagForm.vue index 9cd2b454715de..42daf322fef46 100644 --- a/apps/systemtags/src/components/SystemTagForm.vue +++ b/apps/systemtags/src/components/SystemTagForm.vue @@ -20,6 +20,7 @@ :placeholder="t('systemtags', 'Collaborative tags …')" :fetch-tags="false" :options="tags" + :limit="null" :multiple="false" passthru>