diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 4ac87aa0d..f91def1e5 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -4,6 +4,8 @@ require('@rushstack/eslint-patch/modern-module-resolution'); module.exports = { root: true, extends: [ + 'plugin:vue/vue3-recommended', + 'plugin:vue/vue3-strongly-recommended', 'plugin:vue/vue3-essential', 'eslint:recommended', '@vue/eslint-config-typescript', @@ -12,4 +14,7 @@ module.exports = { parserOptions: { ecmaVersion: 'latest', }, + rules: { + 'vue/multi-word-component-names': 'off', + }, }; diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 61d94181d..748c5c06e 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -15,4 +15,4 @@ jobs: - name: Install npm dependencies run: yarn install - name: Lint - run: yarn workspace oxd-components lint + run: yarn lint diff --git a/.github/workflows/storybook.yml b/.github/workflows/storybook.yml index 1861c2a0d..add6ddc7d 100644 --- a/.github/workflows/storybook.yml +++ b/.github/workflows/storybook.yml @@ -15,4 +15,4 @@ jobs: - name: Install npm dependencies run: yarn install - name: Build Storybook - run: yarn workspace oxd-storybook build + run: yarn build:storybook diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index 088ac9413..ac67c1877 100644 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -17,7 +17,7 @@ jobs: run: yarn install - name: Unit tests - run: yarn workspace oxd-components test:unit --coverage + run: yarn test:unit --coverage - name: Upload jest coverage uses: actions/upload-artifact@v3 diff --git a/.gitignore b/.gitignore index 718af65c7..290b74f7d 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,6 @@ pnpm-debug.log* *.njsproj *.sln *.sw? + +# Coverage report +src/coverage/* diff --git a/package.json b/package.json index 67f592989..845ea4d8b 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ "@types/jsdom": "^20.0.1", "@types/node": "^18.11.12", "@vitejs/plugin-vue": "^4.0.0", + "@vitest/coverage-c8": "^0.27.1", "@vue/eslint-config-prettier": "^7.0.0", "@vue/eslint-config-typescript": "^11.0.0", "@vue/test-utils": "^2.2.6", diff --git a/src/components/Alert/stories/AlertContainer.vue b/src/components/Alert/stories/AlertContainer.vue index 1b307415e..75de3148d 100644 --- a/src/components/Alert/stories/AlertContainer.vue +++ b/src/components/Alert/stories/AlertContainer.vue @@ -28,10 +28,10 @@ > - + - - + + - - + + - - + + @@ -68,7 +72,7 @@ import Alert from '@/components/Alert/Alert.vue'; import Button from '@/components/Button/Button.vue'; export default { - name: 'alert-container-example', + name: 'AlertContainerExample', components: { 'oxd-alert': Alert, 'oxd-button': Button, diff --git a/src/components/CardTable/stories/ActionCardTable.story.vue b/src/components/CardTable/stories/ActionCardTable.story.vue index f9dbbf251..34151a0d0 100644 --- a/src/components/CardTable/stories/ActionCardTable.story.vue +++ b/src/components/CardTable/stories/ActionCardTable.story.vue @@ -22,13 +22,13 @@ @@ -36,6 +36,9 @@ import CardTable from '@/components/CardTable/CardTable.vue'; export default { + components: { + 'oxd-card-table': CardTable, + }, data() { return { selector: { @@ -102,10 +105,6 @@ export default { }; }, - components: { - 'oxd-card-table': CardTable, - }, - methods: { onClick(e) { console.log(e); diff --git a/src/components/CardTable/stories/CardTable.story.vue b/src/components/CardTable/stories/CardTable.story.vue index d7f13ad22..b0a4a955e 100644 --- a/src/components/CardTable/stories/CardTable.story.vue +++ b/src/components/CardTable/stories/CardTable.story.vue @@ -23,16 +23,16 @@ @@ -41,6 +41,18 @@ import CardTable from '@/components/CardTable/CardTable.vue'; export default { + components: { + 'oxd-card-table': CardTable, + }, + + props: { + selectable: { + type: Boolean, + }, + disabled: { + type: Boolean, + }, + }, data() { return { selector: { @@ -56,25 +68,6 @@ export default { }; }, - props: { - selectable: { - type: Boolean, - }, - disabled: { - type: Boolean, - }, - }, - - components: { - 'oxd-card-table': CardTable, - }, - - methods: { - onClick(e) { - console.log(e); - }, - }, - created() { this.isLoading = true; // simulate async data fetch @@ -90,6 +83,12 @@ export default { this.isLoading = false; }, 2000); }, + + methods: { + onClick(e) { + console.log(e); + }, + }, }; diff --git a/src/components/CardTable/stories/CardTableJobs.story.vue b/src/components/CardTable/stories/CardTableJobs.story.vue index 2b56061e5..a8f1a50ec 100644 --- a/src/components/CardTable/stories/CardTableJobs.story.vue +++ b/src/components/CardTable/stories/CardTableJobs.story.vue @@ -23,14 +23,14 @@ @@ -39,6 +39,9 @@ import CardTable from '@/components/CardTable/CardTable.vue'; export default { + components: { + 'oxd-card-table': CardTable, + }, data() { return { selector: { @@ -101,10 +104,6 @@ export default { }; }, - components: { - 'oxd-card-table': CardTable, - }, - methods: { onClick(e) { console.log(e); diff --git a/src/components/CardTable/stories/CardTableLangStringList.story.vue b/src/components/CardTable/stories/CardTableLangStringList.story.vue index 943854fc0..a9da1c49e 100644 --- a/src/components/CardTable/stories/CardTableLangStringList.story.vue +++ b/src/components/CardTable/stories/CardTableLangStringList.story.vue @@ -34,7 +34,7 @@ :items="items" :selectable="false" :clickable="false" - rowDecorator="oxd-table-decorator-card" + row-decorator="oxd-table-decorator-card" /> @@ -46,6 +46,10 @@ import Button from '@/components/Button/Button.vue'; import CardTable from '@/components/CardTable/CardTable.vue'; export default { + components: { + 'oxd-button': Button, + 'oxd-card-table': CardTable, + }, data() { return { headers: [ @@ -113,11 +117,6 @@ export default { }; }, - components: { - 'oxd-button': Button, - 'oxd-card-table': CardTable, - }, - methods: { actionsRenderer(index, item, header, row) { const edit = { diff --git a/src/components/CardTable/stories/CardTableLeavelist.story.vue b/src/components/CardTable/stories/CardTableLeavelist.story.vue index 507bfc0ed..32a5d67cd 100644 --- a/src/components/CardTable/stories/CardTableLeavelist.story.vue +++ b/src/components/CardTable/stories/CardTableLeavelist.story.vue @@ -23,13 +23,13 @@ @@ -38,6 +38,9 @@ import CardTable from '@/components/CardTable/CardTable.vue'; export default { + components: { + 'oxd-card-table': CardTable, + }, data() { return { headers: [ @@ -94,10 +97,6 @@ export default { }; }, - components: { - 'oxd-card-table': CardTable, - }, - methods: { cellRenderer(index, item, header, row) { const accept = { diff --git a/src/components/CardTable/stories/CardTableLeavelistAlt.story.vue b/src/components/CardTable/stories/CardTableLeavelistAlt.story.vue index f6ea8ff54..bc4029f76 100644 --- a/src/components/CardTable/stories/CardTableLeavelistAlt.story.vue +++ b/src/components/CardTable/stories/CardTableLeavelistAlt.story.vue @@ -22,13 +22,13 @@ @@ -39,6 +39,9 @@ import Textarea from '@/components/Input/Textarea/Textarea.vue'; import SelectInput from '@/components/Input/Select/SelectInput.vue'; export default { + components: { + 'oxd-card-table': CardTable, + }, data() { return { headers: [ @@ -99,10 +102,6 @@ export default { }; }, - components: { - 'oxd-card-table': CardTable, - }, - methods: { actionsRenderer() { return { diff --git a/src/components/CardTable/stories/CardTableRowOptions.story.vue b/src/components/CardTable/stories/CardTableRowOptions.story.vue index e03d4d693..57c6afe50 100644 --- a/src/components/CardTable/stories/CardTableRowOptions.story.vue +++ b/src/components/CardTable/stories/CardTableRowOptions.story.vue @@ -18,20 +18,19 @@ * along with this program. If not, see http://www.gnu.org/licenses */ --> ---> @@ -40,6 +39,28 @@ import CardTable from '@/components/CardTable/CardTable.vue'; export default { + components: { + 'oxd-card-table': CardTable, + }, + + props: { + selectable: { + type: Boolean, + }, + disabled: { + type: Boolean, + }, + loading: { + type: Boolean, + }, + clickable: { + type: Boolean, + }, + items: { + type: Array, + default: () => [], + }, + }, data() { return { headers: [ @@ -67,28 +88,6 @@ export default { }; }, - props: { - selectable: { - type: Boolean, - }, - disabled: { - type: Boolean, - }, - loading: { - type: Boolean, - }, - clickable: { - type: Boolean, - }, - items: { - type: Array, - }, - }, - - components: { - 'oxd-card-table': CardTable, - }, - methods: { onClick(e) { console.log(e); diff --git a/src/components/CardTable/stories/CardTableSlots.story.vue b/src/components/CardTable/stories/CardTableSlots.story.vue index 3da36f883..0a607a2f3 100644 --- a/src/components/CardTable/stories/CardTableSlots.story.vue +++ b/src/components/CardTable/stories/CardTableSlots.story.vue @@ -23,14 +23,14 @@