Skip to content

Commit 143608c

Browse files
committed
update tests
1 parent e1f2cc3 commit 143608c

File tree

5 files changed

+58
-169
lines changed

5 files changed

+58
-169
lines changed

package-lock.json

Lines changed: 0 additions & 145 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@
3232
"lint-fix": "eslint --ext .js,.ts,.vue,.md,.html --fix .",
3333
"prepublishOnly": "npm run build",
3434
"release": "npm run build && np",
35-
"test:unit": "vue-cli-service test:unit"
35+
"test:unit": "vue-cli-service test:unit",
36+
"test:watch": "npm run test:unit -- --watch"
3637
},
3738
"husky": {
3839
"hooks": {
@@ -61,7 +62,6 @@
6162
"@rollup/plugin-node-resolve": "^11.0.1",
6263
"@rollup/plugin-replace": "^2.3.4",
6364
"@testing-library/jest-dom": "^5.15.1",
64-
"@testing-library/vue": "^6.4.2",
6565
"@types/babel__traverse": "^7.11.0",
6666
"@types/fs-extra": "^9.0.5",
6767
"@types/node": "*",
@@ -73,6 +73,7 @@
7373
"@vue/cli-plugin-unit-jest": "^4.5.15",
7474
"@vue/cli-service": "~4.5.0",
7575
"@vue/compiler-sfc": "^3.0.4",
76+
"@vue/test-utils": "^2.0.0-0",
7677
"@wessberg/rollup-plugin-ts": "^1.3.8",
7778
"autoprefixer": "^10.1.0",
7879
"babel-eslint": "^10.1.0",
Lines changed: 47 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,58 @@
1-
import { render, fireEvent } from '@testing-library/vue'
1+
import { shallowMount, mount } from '@vue/test-utils'
22
import Button from './Button.vue'
33

4-
describe('Button.vue', () => {
4+
let wrapper
5+
6+
describe('Button', () => {
7+
beforeEach(() => {
8+
wrapper = shallowMount(Button)
9+
})
10+
11+
it('is called', () => {
12+
expect(wrapper.exists()).toBeTruthy()
13+
})
14+
515
it('render correctly', () => {
6-
expect(render(Button).html()).toMatchSnapshot()
16+
expect(wrapper.html()).toMatchSnapshot()
717
})
818

9-
it('emit a click event', async () => {
10-
const handleClick = jest.fn()
11-
const wrapper = render(<Button onClick={handleClick}>Click Me</Button>)
12-
await fireEvent.click(wrapper.getByText(/click me/i))
13-
expect(handleClick).toHaveBeenCalledTimes(1)
19+
it('emit a click event', () => {
20+
wrapper = mount(Button)
21+
wrapper.find('button').trigger('click')
22+
expect(wrapper.emitted()).toHaveProperty('click')
23+
})
24+
it('should be medium', async () => {
25+
wrapper.setProps({
26+
size: 'is-medium',
27+
})
28+
await wrapper.vm.$nextTick()
29+
expect(wrapper.classes()).toContain('is-medium')
1430
})
15-
it('should be medium', () => {
16-
const wrapper = render(Button, { props: { label: 'medium', size: 'is-medium' } })
1731

18-
expect(wrapper.getByRole('button', { name: /medium/i })).toHaveClass('is-medium')
32+
it('should be rounded when prop is set to true', async () => {
33+
wrapper.setProps({
34+
rounded: true,
35+
})
36+
await wrapper.vm.$nextTick()
37+
expect(wrapper.classes()).toContain('is-rounded')
1938
})
20-
it('should be rounded when prop is set to true', () => {
21-
const wrapper = render(Button, { props: { label: 'rounded', rounded: true } })
2239

23-
expect(wrapper.getByRole('button', { name: /rounded/i })).toHaveClass('is-rounded')
40+
it('should set tag to "button" if disabled', () => {
41+
wrapper = shallowMount(Button, {
42+
props: {
43+
tag: 'a',
44+
},
45+
})
46+
expect(wrapper.vm.computedTag).toBe('a')
47+
48+
wrapper = shallowMount(Button, {
49+
props: {
50+
tag: 'a',
51+
},
52+
attrs: {
53+
disabled: true,
54+
},
55+
})
56+
expect(wrapper.vm.computedTag).toBe('button')
2457
})
2558
})

src/components/primitives/Button/Button.vue

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ export default {
66
props: {
77
type: {
88
type: String,
9-
default: 'is-primary'
9+
default: 'is-primary',
1010
},
1111
size: String,
1212
label: String,
@@ -21,18 +21,18 @@ export default {
2121
selected: Boolean,
2222
nativeType: {
2323
type: String,
24-
default: 'button'
24+
default: 'button',
2525
},
2626
tag: {
2727
type: String,
28-
default: 'button'
28+
default: 'button',
2929
},
30-
light: Boolean
30+
light: Boolean,
3131
},
3232
setup(props, { attrs }) {
33-
const computedTag = computed(() => attrs.disabled ? 'button' : props.tag)
33+
const computedTag = computed(() => (attrs.disabled ? 'button' : props.tag))
3434
return { computedTag }
35-
}
35+
},
3636
}
3737
</script>
3838

@@ -55,7 +55,7 @@ export default {
5555
'is-hovered': hovered,
5656
'is-selected': selected,
5757
'is-light': light,
58-
}
58+
},
5959
]">
6060
<span v-if="label">{{ label }}</span>
6161
<slot />

src/components/primitives/Button/__snapshots__/Button.spec.js.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// Jest Snapshot v1, https://goo.gl/fbAQLP
22

3-
exports[`Button.vue render correctly 1`] = `
3+
exports[`Button render correctly 1`] = `
44
<button class="button is-primary" type="button">
55
<!--v-if-->
66
</button>

0 commit comments

Comments
 (0)