Skip to content

Commit c6e5605

Browse files
authored
test(checkbox): add disabled state demos and e2e test (#3835)
* fix(vue-renderless/checkbox): [checkbox] fix disabled state style issue * fix(checkbox): [checkbox] fix disabled state style and improve disabled checked behavior test * test(checkbox): fix disabled checkbox e2e test by using native click via evaluate
1 parent d6ae783 commit c6e5605

File tree

4 files changed

+63
-0
lines changed

4 files changed

+63
-0
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<template>
2+
<tiny-checkbox v-model="checked" name="tiny-checkbox" disabled>复选框</tiny-checkbox>
3+
</template>
4+
5+
<script setup>
6+
import { ref } from 'vue'
7+
import { TinyCheckbox } from '@opentiny/vue'
8+
9+
const checked = ref(true)
10+
</script>
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { test, expect } from '@playwright/test'
2+
3+
test('禁用复选框', async ({ page }) => {
4+
page.on('pageerror', (exception) => expect(exception).toBeNull())
5+
6+
await page.goto('checkbox#disabled')
7+
8+
const checkbox = page.locator('#disabled .tiny-checkbox')
9+
10+
await expect(checkbox).toHaveClass(/is-disabled/)
11+
await expect(checkbox).toHaveClass(/is-checked/)
12+
13+
// 在浏览器上下文调用原生 click,但先作类型判断,避免 TS 报错
14+
await checkbox.evaluate((node: Element) => {
15+
if (node instanceof HTMLElement) {
16+
node.click()
17+
}
18+
})
19+
20+
// 状态应保持不变
21+
await expect(checkbox).toHaveClass(/is-checked/)
22+
})
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<template>
2+
<tiny-checkbox v-model="checked" name="tiny-checkbox" disabled>复选框</tiny-checkbox>
3+
</template>
4+
5+
<script>
6+
import { TinyCheckbox } from '@opentiny/vue'
7+
8+
export default {
9+
components: {
10+
TinyCheckbox
11+
},
12+
data() {
13+
return {
14+
checked: true
15+
}
16+
}
17+
}
18+
</script>

examples/sites/demos/pc/app/checkbox/webdoc/checkbox.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,19 @@ export default {
1616
},
1717
codeFiles: ['basic-usage.vue']
1818
},
19+
// 禁用复选框
20+
{
21+
demoId: 'disabled',
22+
name: {
23+
'zh-CN': '禁用',
24+
'en-US': 'Disabled'
25+
},
26+
desc: {
27+
'zh-CN': '<p>通过 <code>disabled</code> 字段设置当前复选框是否为禁用状态。</p>',
28+
'en-US': '<p>Set whether the current checkbox is disabled through the <code>disabled</code> field.</p>'
29+
},
30+
codeFiles: ['checkbox-disabled.vue']
31+
},
1932
{
2033
demoId: 'checkbox-group',
2134
name: {

0 commit comments

Comments
 (0)