ui-lit
Version:
UI Elements on LIT
52 lines (51 loc) • 1.83 kB
JavaScript
import { expect } from '@esm-bundle/chai';
import './index';
import '../label/index';
const getCheckbox = () => document.querySelector("lit-checkbox");
describe('Test Checkbox', async () => {
beforeEach(async () => {
document.body.innerHTML = `<lit-checkbox></lit-checkbox>`;
});
it('should default value is off', () => {
const checbox = getCheckbox();
expect(checbox.value).equal("off");
});
it('should default checked is false', () => {
const checbox = getCheckbox();
expect(checbox.checked).equal(false);
});
it('should changed value by checked', () => {
const checbox = getCheckbox();
checbox.checked = true;
expect(checbox.value).equal('on');
});
it('should trigger changed event', () => {
const checbox = getCheckbox();
let toggled = '';
checbox.addEventListener('changed', ((e) => {
toggled = e.detail.checked + e.detail.value;
}));
checbox.toggle();
expect(toggled).equal('trueon');
});
it('should NOT trigger changed event when readonly', () => {
const checbox = getCheckbox();
let toggled = '';
checbox.readonly = true;
checbox.addEventListener('changed', ((e) => {
toggled = e.detail.checked + e.detail.value;
}));
checbox.toggle();
expect(toggled).equal('');
});
it('should NOT trigger changed event when disabled', () => {
const checbox = getCheckbox();
let toggled = '';
checbox.disabled = true;
checbox.addEventListener('changed', ((e) => {
toggled = e.detail.checked + e.detail.value;
}));
checbox.toggle();
expect(toggled).equal('');
});
});