Skip to content

Commit

Permalink
feat: port CvNumberInputSkeleton to Vue3
Browse files Browse the repository at this point in the history
  • Loading branch information
OlkaB committed Jul 6, 2023
1 parent 1a02db8 commit 4b0f1da
Show file tree
Hide file tree
Showing 7 changed files with 99 additions and 0 deletions.
4 changes: 4 additions & 0 deletions main.js
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,8 @@ import CvSwitcherItemLink from './src/components/CvUIShell/CvSwitcherItemLink.vu
import CvColumn from './src/components/CvGrid/CvColumn.vue';
import CvGrid from './src/components/CvGrid/CvGrid.vue';
import CvRow from './src/components/CvGrid/CvRow.vue';
import CvNumberInput from './src/components/CvNumberInput/CvNumberInput.vue';
import CvNumberInputSkeleton from './src/components/CvNumberInput/CvNumberInputSkeleton.vue';

const all = {
CvAspectRatio,
Expand Down Expand Up @@ -120,6 +122,8 @@ const all = {
CvColumn,
CvGrid,
CvRow,
CvNumberInput,
CvNumberInputSkeleton,
};
export default {
install(app, options) {
Expand Down
29 changes: 29 additions & 0 deletions src/components/CvNumberInput/CvNumberInput.stories.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import {
sbCompPrefix,
storyParametersObject,
} from '../../global/storybook-utils';
import { StorybookGroupConst } from './StorybookGroupConst';
import CvNumberInput from './CvNumberInput.vue';

export default {
title: `${sbCompPrefix}/${StorybookGroupConst}/CvNumberInput`,
component: CvNumberInput,
argTypes: {},
};

const template = `<cv-number-input v-bind="args"></cv-number-input>`;
const Template = (args, { argTypes }) => {
return {
props: Object.keys(argTypes),
components: { CvNumberInput },
template,
setup: () => ({ args }),
};
};

export const Default = Template.bind({});
Default.parameters = storyParametersObject(
Default.parameters,
template,
Default.args
);
5 changes: 5 additions & 0 deletions src/components/CvNumberInput/CvNumberInput.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<template>
<div>CvNumberInput</div>
</template>

<script setup></script>
30 changes: 30 additions & 0 deletions src/components/CvNumberInput/CvNumberInputSkeleton.stories.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import {
sbCompPrefix,
storyParametersObject,
} from '../../global/storybook-utils';
import { StorybookGroupConst } from './StorybookGroupConst';
import CvNumberInputSkeleton from './CvNumberInputSkeleton.vue';

export default {
title: `${sbCompPrefix}/${StorybookGroupConst}/CvNumberInputSkeleton`,
component: CvNumberInputSkeleton,
};

const template = `<cv-number-input-skeleton></cv-number-input-skeleton>`;
const Template = (args, { argTypes }) => {
return {
props: Object.keys(argTypes),
components: { CvNumberInputSkeleton },
template,
setup() {
return { args };
},
};
};

export const Default = Template.bind({});
Default.parameters = storyParametersObject(
Default.parameters,
template,
Default.args
);
10 changes: 10 additions & 0 deletions src/components/CvNumberInput/CvNumberInputSkeleton.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<template>
<div class="cv-number-input" :class="`${carbonPrefix}--form-item`">
<label :class="`${carbonPrefix}--label ${carbonPrefix}--skeleton`" />
<div :class="`${carbonPrefix}--number ${carbonPrefix}--skeleton`" />
</div>
</template>

<script setup>
import { carbonPrefix } from '../../global/settings';
</script>
1 change: 1 addition & 0 deletions src/components/CvNumberInput/StorybookGroupConst.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export const StorybookGroupConst = 'CvNumberInput';
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/**
* NOTE: This test needs to be converted to use the new library `@testing-library/vue`. See CvCheckbox test for example.
*/
import { shallowMount } from '@vue/test-utils';
import { carbonPrefix } from '../../../global/settings';
import CvNumberInputSkeleton from '../CvNumberInputSkeleton.vue';

describe('CvNumberInputSkeleton', () => {
it('renders number input skeleton', () => {
const wrapper = shallowMount(CvNumberInputSkeleton);

const skeletonWrapper = wrapper.find('.cv-number-input');
const skeletonLabel = skeletonWrapper.find(`.${carbonPrefix}--label`);
const skeletonInput = skeletonWrapper.find(`.${carbonPrefix}--number`);
const expectedSkeletonClass = `${carbonPrefix}--skeleton`;

expect(skeletonLabel.classes()).toContain(expectedSkeletonClass);
expect(skeletonInput.classes()).toContain(expectedSkeletonClass);
});
});

0 comments on commit 4b0f1da

Please sign in to comment.