From 477941ebe51289b73a645df314d7f74f5dfffc0c Mon Sep 17 00:00:00 2001 From: Chen Asraf Date: Sat, 10 Jan 2026 16:26:59 +0200 Subject: [PATCH] chore: update gen templates --- gen/component/{{pascalCase name}}.test.ts | 89 +++++++++++++++++++++++ gen/component/{{pascalCase name}}.vue | 5 ++ gen/model/{{pascalCase name}}Mapper.php | 2 +- 3 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 gen/component/{{pascalCase name}}.test.ts diff --git a/gen/component/{{pascalCase name}}.test.ts b/gen/component/{{pascalCase name}}.test.ts new file mode 100644 index 0000000..6a5f92b --- /dev/null +++ b/gen/component/{{pascalCase name}}.test.ts @@ -0,0 +1,89 @@ +// SPDX-FileCopyrightText: Chen Asraf +// SPDX-License-Identifier: AGPL-3.0-or-later + +/** + * Unit tests for {{pascalCase name}} component. + * + * Run tests: + * pnpm test # watch mode + * pnpm test:run # single run + * + * See src/components/StatusBadge.test.ts for a complete example. + */ +import { mount } from '@vue/test-utils' +import { describe, expect, it, vi } from 'vitest' + +import { createIconMock, nextcloudL10nMock } from '@/test-utils' +import {{ pascalCase name }} from './{{pascalCase name}}.vue' + +// ---------------------------------------------------------------------------- +// Mocks - uncomment as needed +// ---------------------------------------------------------------------------- + +// Mock @nextcloud/l10n (if your component uses t() or n()) +// vi.mock('@nextcloud/l10n', () => nextcloudL10nMock) + +// Mock icon components (adjust path and name as needed) +// vi.mock('@icons/Check.vue', () => createIconMock('CheckIcon')) + +// ---------------------------------------------------------------------------- +// Tests +// ---------------------------------------------------------------------------- + +describe('{{pascalCase name}}', () => { + // Example: Basic rendering + // it('renders correctly', () => { + // const wrapper = mount({{pascalCase name}}) + // expect(wrapper.exists()).toBe(true) + // }) + + // Example: Testing with props + // it('renders with props', () => { + // const wrapper = mount({{pascalCase name}}, { + // props: { title: 'Hello' }, + // }) + // expect(wrapper.text()).toContain('Hello') + // }) + + // Example: Testing CSS classes + // it('applies correct CSS class', () => { + // const wrapper = mount({{pascalCase name}}, { + // props: { variant: 'primary' }, + // }) + // expect(wrapper.classes()).toContain('is-primary') + // }) + + // Example: Testing emitted events + // it('emits click event', async () => { + // const wrapper = mount({{pascalCase name}}) + // await wrapper.trigger('click') + // expect(wrapper.emitted('click')).toBeTruthy() + // }) + + // Example: Testing computed properties + // it('computes derived value', () => { + // const wrapper = mount({{pascalCase name}}, { + // props: { count: 5 }, + // }) + // const vm = wrapper.vm as InstanceType + // expect(vm.doubleCount).toBe(10) + // }) + + // Example: Testing conditional rendering + // it('shows content when condition is met', () => { + // const wrapper = mount({{pascalCase name}}, { + // props: { showDetails: true }, + // }) + // expect(wrapper.find('.details').exists()).toBe(true) + // }) + + // Example: Testing slots + // it('renders slot content', () => { + // const wrapper = mount({{pascalCase name}}, { + // slots: { default: 'Slot content' }, + // }) + // expect(wrapper.text()).toContain('Slot content') + // }) + + it.todo('add your tests here') +}) diff --git a/gen/component/{{pascalCase name}}.vue b/gen/component/{{pascalCase name}}.vue index 7ea938c..904eaf6 100644 --- a/gen/component/{{pascalCase name}}.vue +++ b/gen/component/{{pascalCase name}}.vue @@ -1,3 +1,8 @@ + + diff --git a/gen/model/{{pascalCase name}}Mapper.php b/gen/model/{{pascalCase name}}Mapper.php index 3402d59..af4d67b 100755 --- a/gen/model/{{pascalCase name}}Mapper.php +++ b/gen/model/{{pascalCase name}}Mapper.php @@ -24,7 +24,6 @@ class {{pascalCase name}}Mapper extends QBMapper { } /** - * @param string $id * @throws \OCP\AppFramework\Db\MultipleObjectsReturnedException * @throws DoesNotExistException */ @@ -41,6 +40,7 @@ class {{pascalCase name}}Mapper extends QBMapper { } /** + * @param string $id * @return array<{{pascalCase name}}> */ public function findAll(): array {